libergtk/include/erGtkEntry.h File Reference

ereader gtk library - GtkEntry object adapted for ereader system More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _erGtkEntry
struct  _erGtkEntryClass

Defines

#define ERGTK_ENTRY_DEFAULT_WIDTH   150
#define ERGTK_ENTRY_DEFAULT_HEIGHT   30
#define ERGTK_ENTRY_TYPE   (ergtk_entry_get_type())
#define ERGTK_ENTRY(obj)   (G_TYPE_CHECK_INSTANCE_CAST((obj), ERGTK_ENTRY_TYPE, erGtkEntry))
#define ERGTK_IS_ENTRY(obj)   (G_TYPE_CHECK_INSTANCE_TYPE((obj), ERGTK_ENTRY_TYPE))
#define ERGTK_ENTRY_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST((klass), ERGTK_ENTRY_TYPE, erGtkEntryClass))
#define ERGTK_ENTRY_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj), ERGTK_ENTRY_TYPE, erGtkEntryClass))
#define ERGTK_IS_ENTRY_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), ERGTK_ENTRY_TYPE))
#define gtk_entry_set_text(entry, text)

Typedefs

typedef struct _erGtkEntry erGtkEntry
typedef struct _erGtkEntryClass erGtkEntryClass

Enumerations

enum  entryFilter_e { ipAddress_e = 0, integer_e, string_e }

Functions

GtkWidget * ergtk_entry_new ()
GType ergtk_entry_get_type (void)
void ergtk_entry_set_text (erGtkEntry *er_entry, const gchar *text)
void ergtk_entry_set_ipv4_filter (erGtkEntry *er_entry)
void ergtk_entry_set_integer_filter (erGtkEntry *er_entry)
gboolean ergtk_entry_check_field (erGtkEntry *er_entry)


Detailed Description

ereader gtk library - GtkEntry object adapted for ereader system

Emits signal "changed-stable" shortly after the latest change of the entry text. Emits signal "screen-refresh" when a screen refresh is needed for the entry object.

Copyright (C) 2007 iRex Technologies B.V. All rights reserved.

Definition in file erGtkEntry.h.


Define Documentation

#define ERGTK_ENTRY ( obj   )     (G_TYPE_CHECK_INSTANCE_CAST((obj), ERGTK_ENTRY_TYPE, erGtkEntry))

Definition at line 40 of file erGtkEntry.h.

#define ERGTK_ENTRY_CLASS ( klass   )     (G_TYPE_CHECK_CLASS_CAST((klass), ERGTK_ENTRY_TYPE, erGtkEntryClass))

Definition at line 43 of file erGtkEntry.h.

#define ERGTK_ENTRY_DEFAULT_HEIGHT   30

Definition at line 37 of file erGtkEntry.h.

#define ERGTK_ENTRY_DEFAULT_WIDTH   150

Definition at line 36 of file erGtkEntry.h.

#define ERGTK_ENTRY_GET_CLASS ( obj   )     (G_TYPE_INSTANCE_GET_CLASS((obj), ERGTK_ENTRY_TYPE, erGtkEntryClass))

Definition at line 44 of file erGtkEntry.h.

#define ERGTK_ENTRY_TYPE   (ergtk_entry_get_type())

Definition at line 39 of file erGtkEntry.h.

#define ERGTK_IS_ENTRY ( obj   )     (G_TYPE_CHECK_INSTANCE_TYPE((obj), ERGTK_ENTRY_TYPE))

Definition at line 41 of file erGtkEntry.h.

#define ERGTK_IS_ENTRY_CLASS ( klass   )     (G_TYPE_CHECK_CLASS_TYPE((klass), ERGTK_ENTRY_TYPE))

Definition at line 45 of file erGtkEntry.h.

#define gtk_entry_set_text ( entry,
text   ) 

Value:

if ( ERGTK_IS_ENTRY(entry) )                                \
        ergtk_entry_set_text( (erGtkEntry*)(entry), (text) );   \
    else                                                        \
        gtk_entry_set_text( (entry), (text) );

Definition at line 49 of file erGtkEntry.h.


Typedef Documentation

typedef struct _erGtkEntry erGtkEntry

Definition at line 62 of file erGtkEntry.h.

Definition at line 63 of file erGtkEntry.h.


Enumeration Type Documentation

Enumerator:
ipAddress_e 
integer_e 
string_e 

Definition at line 55 of file erGtkEntry.h.

00056 {
00057     ipAddress_e = 0,
00058     integer_e,
00059     string_e
00060 }entryFilter_e;


Function Documentation

gboolean ergtk_entry_check_field ( erGtkEntry er_entry  ) 

Definition at line 103 of file erGtkEntry.c.

00104 {
00105     GtkEntry    *entry;
00106     const gchar *text;
00107     gint         i, len, ret;
00108     gboolean     valid = FALSE;
00109 
00110     g_return_val_if_fail(ERGTK_IS_ENTRY(er_entry), FALSE);
00111 
00112     entry = GTK_ENTRY(er_entry);
00113     text = gtk_entry_get_text(entry);
00114     if (text && (text[0] != '\0'))
00115     {
00116         switch (er_entry->filter)
00117         {
00118             case ipAddress_e:
00119                 ret = ipv4_filter_check_address(text);
00120                 if (ret == ipv4Complete_e)
00121                 {
00122                     valid = TRUE;
00123                 }
00124                 break;
00125 
00126             case integer_e:
00127                 valid = TRUE;
00128                 len = strlen(text);
00129                 for (i = 0; i < len; i++)
00130                 {
00131                     if (!isdigit(text[i]))
00132                     {
00133                         valid = FALSE;
00134                         break;
00135                     }
00136                 }
00137                 break;
00138             case string_e:
00139             default:
00140                 valid = TRUE;
00141                 break;
00142         }
00143     }
00144 
00145     LOGPRINTF("return %d", valid);
00146     return valid;
00147 }

Here is the call graph for this function:

GType ergtk_entry_get_type ( void   ) 

get type of erGtkEntry widget

Returns:
type

Definition at line 149 of file erGtkEntry.c.

00150 {
00151     static GType class_type = 0;
00152 
00153     if (class_type == 0)
00154     {
00155         static const GTypeInfo class_info =
00156         {
00157             sizeof(erGtkEntryClass),
00158             NULL,               /* base_init */
00159             NULL,               /* base_finalize */
00160             (GClassInitFunc) ergtk_entry_class_init,
00161             NULL,               /* class_finalize */
00162             NULL,               /* class_data */
00163             sizeof(erGtkEntry),
00164             0,                  /* n_preallocs */
00165             (GInstanceInitFunc) ergtk_entry_init,
00166         };
00167         class_type = g_type_register_static(GTK_TYPE_ENTRY, "erGtkEntry", &class_info, 0);
00168 
00169         static const GInterfaceInfo editable_info =
00170         {
00171             (GInterfaceInitFunc)ergtk_entry_editable_init, /* interface_init */
00172             NULL, /* interface_finalize */
00173             NULL  /* interface_data */
00174         };
00175         g_type_add_interface_static(class_type, GTK_TYPE_EDITABLE, &editable_info);
00176     }
00177 
00178     return class_type;
00179 }

Here is the call graph for this function:

GtkWidget* ergtk_entry_new (  ) 

creates a new erGtkEntry widget

Parameters:
- 
Returns:
reference to created widget

Definition at line 80 of file erGtkEntry.c.

00081 {
00082     erGtkEntry* item = (erGtkEntry*) g_object_new(ERGTK_ENTRY_TYPE, NULL);
00083 
00084     return GTK_WIDGET(item);
00085 }

void ergtk_entry_set_integer_filter ( erGtkEntry er_entry  ) 

Definition at line 95 of file erGtkEntry.c.

00096 {
00097     g_return_if_fail(ERGTK_IS_ENTRY(er_entry));
00098 
00099     er_entry->filter = integer_e;
00100     integer_filter_init(GTK_ENTRY(er_entry));
00101 }

Here is the call graph for this function:

void ergtk_entry_set_ipv4_filter ( erGtkEntry er_entry  ) 

Definition at line 87 of file erGtkEntry.c.

00088 {
00089     g_return_if_fail(ERGTK_IS_ENTRY(er_entry));
00090 
00091     er_entry->filter = ipAddress_e;
00092     ipv4_filter_init(GTK_ENTRY(er_entry));
00093 }

Here is the call graph for this function:

void ergtk_entry_set_text ( erGtkEntry er_entry,
const gchar *  text 
)

set the user input text

Parameters:
er_entry the erGtkEntry widget
text the user input text
Returns:
- the user input text

Definition at line 263 of file erGtkEntry.c.

00264 {
00265     g_return_if_fail(ERGTK_IS_ENTRY(er_entry));
00266 
00267     erGtkEntryClass* klass = ERGTK_ENTRY_GET_CLASS(er_entry);
00268 
00269     // chain to real method, which may be overloaded
00270     if (klass->set_text)
00271     {
00272         klass->set_text(er_entry, text);
00273     }
00274 }


Generated on Sun Dec 14 17:12:32 2008 by  doxygen 1.5.6