Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : proto

Dir     : e17/proto/enhance/src/lib


Modified Files:
        enhance.c enhance_widget.c 


Log Message:
- support stocks (lok, thanks)
- move Andy's code to our generic propery handler code


===================================================================
RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- enhance.c   18 Apr 2006 15:00:19 -0000      1.4
+++ enhance.c   17 May 2006 12:35:02 -0000      1.5
@@ -8,6 +8,316 @@
 static void      _e_traverse_child_xml(Enhance *en);
 static E_Widget *_e_traverse_widget_xml(Enhance *en);
 static void      _e_traverse_xml(Enhance *en);
+static Ecore_Hash*_en_stock_items_hash=NULL;
+static void      _en_stock_items_hash_init(void);
+
+typedef struct _En_Stock_Item
+{
+   char *str;
+   Etk_Stock_Id id;
+} En_Stock_Item;
+
+static const En_Stock_Item en_stock_items[] =
+{
+   { "ETK_STOCK_ADDRESS_BOOK_NEW", ETK_STOCK_ADDRESS_BOOK_NEW },
+   { "ETK_STOCK_APPOINTMENT_NEW", ETK_STOCK_APPOINTMENT_NEW },
+   { "ETK_STOCK_BOOKMARK_NEW", ETK_STOCK_BOOKMARK_NEW },
+   { "ETK_STOCK_CONTACT_NEW", ETK_STOCK_CONTACT_NEW },
+   { "ETK_STOCK_DIALOG_OK", ETK_STOCK_DIALOG_OK },     
+   { "ETK_STOCK_DIALOG_CANCEL", ETK_STOCK_DIALOG_CANCEL },
+   { "ETK_STOCK_DIALOG_YES", ETK_STOCK_DIALOG_YES },     
+   { "ETK_STOCK_DIALOG_NO", ETK_STOCK_DIALOG_NO },
+   { "ETK_STOCK_DIALOG_CLOSE", ETK_STOCK_DIALOG_CLOSE },
+   { "ETK_STOCK_DOCUMENT_NEW", ETK_STOCK_DOCUMENT_NEW },
+   { "ETK_STOCK_DOCUMENT_OPEN", ETK_STOCK_DOCUMENT_OPEN },
+   { "ETK_STOCK_DOCUMENT_PRINT", ETK_STOCK_DOCUMENT_PRINT },
+   { "ETK_STOCK_DOCUMENT_PRINT_PREVIEW", ETK_STOCK_DOCUMENT_PRINT_PREVIEW },
+   { "ETK_STOCK_DOCUMENT_PROPERTIES", ETK_STOCK_DOCUMENT_PROPERTIES },
+   { "ETK_STOCK_DOCUMENT_SAVE_AS", ETK_STOCK_DOCUMENT_SAVE_AS },
+   { "ETK_STOCK_DOCUMENT_SAVE", ETK_STOCK_DOCUMENT_SAVE },
+   { "ETK_STOCK_EDIT_CLEAR", ETK_STOCK_EDIT_CLEAR },
+   { "ETK_STOCK_EDIT_COPY", ETK_STOCK_EDIT_COPY },
+   { "ETK_STOCK_EDIT_CUT", ETK_STOCK_EDIT_CUT },
+   { "ETK_STOCK_EDIT_FIND", ETK_STOCK_EDIT_FIND },
+   { "ETK_STOCK_EDIT_PASTE", ETK_STOCK_EDIT_PASTE },
+   { "ETK_STOCK_EDIT_REDO", ETK_STOCK_EDIT_REDO },
+   { "ETK_STOCK_EDIT_UNDO", ETK_STOCK_EDIT_UNDO },
+   { "ETK_STOCK_EDIT_DELETE", ETK_STOCK_EDIT_DELETE },
+   { "ETK_STOCK_EDIT_FIND_REPLACE", ETK_STOCK_EDIT_FIND_REPLACE },
+   { "ETK_STOCK_FOLDER_NEW", ETK_STOCK_FOLDER_NEW },
+   { "ETK_STOCK_FORMAT_INDENT_LESS", ETK_STOCK_FORMAT_INDENT_LESS },
+   { "ETK_STOCK_FORMAT_INDENT_MORE", ETK_STOCK_FORMAT_INDENT_MORE },
+   { "ETK_STOCK_FORMAT_JUSTIFY_CENTER", ETK_STOCK_FORMAT_JUSTIFY_CENTER },
+   { "ETK_STOCK_FORMAT_JUSTIFY_FILL", ETK_STOCK_FORMAT_JUSTIFY_FILL },
+   { "ETK_STOCK_FORMAT_JUSTIFY_LEFT", ETK_STOCK_FORMAT_JUSTIFY_LEFT },
+   { "ETK_STOCK_FORMAT_JUSTIFY_RIGHT", ETK_STOCK_FORMAT_JUSTIFY_RIGHT },
+   { "ETK_STOCK_FORMAT_TEXT_BOLD", ETK_STOCK_FORMAT_TEXT_BOLD },
+   { "ETK_STOCK_FORMAT_TEXT_ITALIC", ETK_STOCK_FORMAT_TEXT_ITALIC },
+   { "ETK_STOCK_FORMAT_TEXT_STRIKETHROUGH", 
ETK_STOCK_FORMAT_TEXT_STRIKETHROUGH },
+   { "ETK_STOCK_FORMAT_TEXT_UNDERLINE", ETK_STOCK_FORMAT_TEXT_UNDERLINE },
+   { "ETK_STOCK_GO_BOTTOM", ETK_STOCK_GO_BOTTOM },
+   { "ETK_STOCK_GO_DOWN", ETK_STOCK_GO_DOWN },
+   { "ETK_STOCK_GO_FIRST", ETK_STOCK_GO_FIRST },
+   { "ETK_STOCK_GO_HOME", ETK_STOCK_GO_HOME },
+   { "ETK_STOCK_GO_JUMP", ETK_STOCK_GO_JUMP },
+   { "ETK_STOCK_GO_LAST", ETK_STOCK_GO_LAST },
+   { "ETK_STOCK_GO_NEXT", ETK_STOCK_GO_NEXT },
+   { "ETK_STOCK_GO_PREVIOUS", ETK_STOCK_GO_PREVIOUS },
+   { "ETK_STOCK_GO_TOP", ETK_STOCK_GO_TOP },
+   { "ETK_STOCK_GO_UP", ETK_STOCK_GO_UP },
+   { "ETK_STOCK_LIST_ADD", ETK_STOCK_LIST_ADD },
+   { "ETK_STOCK_LIST_REMOVE", ETK_STOCK_LIST_REMOVE },
+   { "ETK_STOCK_MAIL_MESSAGE_NEW", ETK_STOCK_MAIL_MESSAGE_NEW },
+   { "ETK_STOCK_MAIL_FORWARD", ETK_STOCK_MAIL_FORWARD },
+   { "ETK_STOCK_MAIL_MARK_JUNK", ETK_STOCK_MAIL_MARK_JUNK },
+   { "ETK_STOCK_MAIL_REPLY_ALL", ETK_STOCK_MAIL_REPLY_ALL },
+   { "ETK_STOCK_MAIL_REPLY_SENDER", ETK_STOCK_MAIL_REPLY_SENDER },
+   { "ETK_STOCK_MAIL_SEND_RECEIVE", ETK_STOCK_MAIL_SEND_RECEIVE },
+   { "ETK_STOCK_MEDIA_EJECT", ETK_STOCK_MEDIA_EJECT },  
+   { "ETK_STOCK_MEDIA_PLAYBACK_PAUSE", ETK_STOCK_MEDIA_PLAYBACK_PAUSE },
+   { "ETK_STOCK_MEDIA_PLAYBACK_START", ETK_STOCK_MEDIA_PLAYBACK_START },
+   { "ETK_STOCK_MEDIA_PLAYBACK_STOP", ETK_STOCK_MEDIA_PLAYBACK_STOP },
+   { "ETK_STOCK_MEDIA_RECORD", ETK_STOCK_MEDIA_RECORD },
+   { "ETK_STOCK_MEDIA_SEEK_BACKWARD", ETK_STOCK_MEDIA_SEEK_BACKWARD },
+   { "ETK_STOCK_MEDIA_SEEK_FORWARD", ETK_STOCK_MEDIA_SEEK_FORWARD },
+   { "ETK_STOCK_MEDIA_SKIP_BACKWARD", ETK_STOCK_MEDIA_SKIP_BACKWARD },
+   { "ETK_STOCK_MEDIA_SKIP_FORWARD", ETK_STOCK_MEDIA_SKIP_FORWARD },
+   { "ETK_STOCK_PROCESS_STOP", ETK_STOCK_PROCESS_STOP },
+   { "ETK_STOCK_SYSTEM_LOCK_SCREEN", ETK_STOCK_SYSTEM_LOCK_SCREEN },
+   { "ETK_STOCK_SYSTEM_LOG_OUT", ETK_STOCK_SYSTEM_LOG_OUT },
+   { "ETK_STOCK_SYSTEM_SEARCH", ETK_STOCK_SYSTEM_SEARCH },
+   { "ETK_STOCK_SYSTEM_SHUTDOWN", ETK_STOCK_SYSTEM_SHUTDOWN },
+   { "ETK_STOCK_TAB_NEW", ETK_STOCK_TAB_NEW },
+   { "ETK_STOCK_VIEW_REFRESH", ETK_STOCK_VIEW_REFRESH },
+   { "ETK_STOCK_WINDOW_NEW", ETK_STOCK_WINDOW_NEW },
+   { "ETK_STOCK_ACCESSORIES_CALCULATOR", ETK_STOCK_ACCESSORIES_CALCULATOR },
+   { "ETK_STOCK_ACCESSORIES_CHARACTER_MAP", 
ETK_STOCK_ACCESSORIES_CHARACTER_MAP },
+   { "ETK_STOCK_ACCESSORIES_TEXT_EDITOR", ETK_STOCK_ACCESSORIES_TEXT_EDITOR },
+   { "ETK_STOCK_HELP_BROWSER", ETK_STOCK_HELP_BROWSER },
+   { "ETK_STOCK_INTERNET_GROUP_CHAT", ETK_STOCK_INTERNET_GROUP_CHAT },
+   { "ETK_STOCK_INTERNET_MAIL", ETK_STOCK_INTERNET_MAIL },
+   { "ETK_STOCK_INTERNET_NEWS_READER", ETK_STOCK_INTERNET_NEWS_READER },
+   { "ETK_STOCK_INTERNET_WEB_BROWSER", ETK_STOCK_INTERNET_WEB_BROWSER },
+   { "ETK_STOCK_MULTIMEDIA_VOLUME_CONTROL", 
ETK_STOCK_MULTIMEDIA_VOLUME_CONTROL },
+   { "ETK_STOCK_OFFICE_CALENDAR", ETK_STOCK_OFFICE_CALENDAR },
+   { "ETK_STOCK_PREFERENCES_DESKTOP_ACCESSIBILITY", 
ETK_STOCK_PREFERENCES_DESKTOP_ACCESSIBILITY },
+   { "ETK_STOCK_PREFERENCES_DESKTOP_ASSISTIVE_TECHNOLOGY", 
ETK_STOCK_PREFERENCES_DESKTOP_ASSISTIVE_TECHNOLOGY },
+   { "ETK_STOCK_PREFERENCES_DESKTOP_FONT", ETK_STOCK_PREFERENCES_DESKTOP_FONT 
},
+   { "ETK_STOCK_PREFERENCES_DESKTOP_KEYBOARD_SHORTCUTS", 
ETK_STOCK_PREFERENCES_DESKTOP_KEYBOARD_SHORTCUTS },
+   { "ETK_STOCK_PREFERENCES_DESKTOP_LOCALE", 
ETK_STOCK_PREFERENCES_DESKTOP_LOCALE },
+   { "ETK_STOCK_PREFERENCES_DESKTOP_REMOTE_DESKTOP", 
ETK_STOCK_PREFERENCES_DESKTOP_REMOTE_DESKTOP },
+   { "ETK_STOCK_PREFERENCES_DESKTOP_SOUND", 
ETK_STOCK_PREFERENCES_DESKTOP_SOUND },
+   { "ETK_STOCK_PREFERENCES_DESKTOP_SCREENSAVER", 
ETK_STOCK_PREFERENCES_DESKTOP_SCREENSAVER },
+   { "ETK_STOCK_PREFERENCES_DESKTOP_THEME", 
ETK_STOCK_PREFERENCES_DESKTOP_THEME },
+   { "ETK_STOCK_PREFERENCES_DESKTOP_WALLPAPER", 
ETK_STOCK_PREFERENCES_DESKTOP_WALLPAPER },
+   { "ETK_STOCK_PREFERENCES_SYSTEM_NETWORK_PROXY", 
ETK_STOCK_PREFERENCES_SYSTEM_NETWORK_PROXY },  
+   { "ETK_STOCK_PREFERENCES_SYSTEM_SESSION", 
ETK_STOCK_PREFERENCES_SYSTEM_SESSION },
+   { "ETK_STOCK_PREFERENCES_SYSTEM_WINDOWS", 
ETK_STOCK_PREFERENCES_SYSTEM_WINDOWS },
+   { "ETK_STOCK_SYSTEM_FILE_MANAGER", ETK_STOCK_SYSTEM_FILE_MANAGER },
+   { "ETK_STOCK_SYSTEM_INSTALLER", ETK_STOCK_SYSTEM_INSTALLER },
+   { "ETK_STOCK_SYSTEM_SOFTWARE_UPDATE", ETK_STOCK_SYSTEM_SOFTWARE_UPDATE },
+   { "ETK_STOCK_SYSTEM_USERS", ETK_STOCK_SYSTEM_USERS },
+   { "ETK_STOCK_UTILITIES_SYSTEM_MONITOR", ETK_STOCK_UTILITIES_SYSTEM_MONITOR 
},
+   { "ETK_STOCK_UTILITIES_TERMINAL", ETK_STOCK_UTILITIES_TERMINAL },
+   { "ETK_STOCK_APPLICATIONS_ACCESSORIES", ETK_STOCK_APPLICATIONS_ACCESSORIES 
},
+   { "ETK_STOCK_APPLICATIONS_DEVELOPMENT", ETK_STOCK_APPLICATIONS_DEVELOPMENT 
},
+   { "ETK_STOCK_APPLICATIONS_GAMES", ETK_STOCK_APPLICATIONS_GAMES },
+   { "ETK_STOCK_APPLICATIONS_GRAPHICS", ETK_STOCK_APPLICATIONS_GRAPHICS },
+   { "ETK_STOCK_APPLICATIONS_INTERNET", ETK_STOCK_APPLICATIONS_INTERNET },
+   { "ETK_STOCK_APPLICATIONS_MULTIMEDIA", ETK_STOCK_APPLICATIONS_MULTIMEDIA },
+   { "ETK_STOCK_APPLICATIONS_OFFICE", ETK_STOCK_APPLICATIONS_OFFICE },
+   { "ETK_STOCK_APPLICATIONS_OTHER", ETK_STOCK_APPLICATIONS_OTHER },
+   { "ETK_STOCK_APPLICATIONS_SYSTEM", ETK_STOCK_APPLICATIONS_SYSTEM },
+   { "ETK_STOCK_PREFERENCES_DESKTOP_PERIPHERALS", 
ETK_STOCK_PREFERENCES_DESKTOP_PERIPHERALS },
+   { "ETK_STOCK_PREFERENCES_DESKTOP", ETK_STOCK_PREFERENCES_DESKTOP },
+   { "ETK_STOCK_PREFERENCES_SYSTEM", ETK_STOCK_PREFERENCES_SYSTEM },
+   { "ETK_STOCK_AUDIO_CARD", ETK_STOCK_AUDIO_CARD },
+   { "ETK_STOCK_AUDIO_INPUT_MICROPHONE", ETK_STOCK_AUDIO_INPUT_MICROPHONE },
+   { "ETK_STOCK_BATTERY", ETK_STOCK_BATTERY },
+   { "ETK_STOCK_CAMERA_PHOTO", ETK_STOCK_CAMERA_PHOTO },
+   { "ETK_STOCK_CAMERA_VIDEO", ETK_STOCK_CAMERA_VIDEO },
+   { "ETK_STOCK_COMPUTER", ETK_STOCK_COMPUTER },
+   { "ETK_STOCK_DRIVE_CDROM", ETK_STOCK_DRIVE_CDROM },
+   { "ETK_STOCK_DRIVE_HARDDISK", ETK_STOCK_DRIVE_HARDDISK },
+   { "ETK_STOCK_DRIVE_REMOVABLE_MEDIA", ETK_STOCK_DRIVE_REMOVABLE_MEDIA },
+   { "ETK_STOCK_INPUT_GAMING", ETK_STOCK_INPUT_GAMING },
+   { "ETK_STOCK_INPUT_KEYBOARD", ETK_STOCK_INPUT_KEYBOARD },
+   { "ETK_STOCK_INPUT_MOUSE", ETK_STOCK_INPUT_MOUSE },
+   { "ETK_STOCK_MEDIA_CDROM", ETK_STOCK_MEDIA_CDROM },
+   { "ETK_STOCK_MEDIA_FLOPPY", ETK_STOCK_MEDIA_FLOPPY },
+   { "ETK_STOCK_MULTIMEDIA_PLAYER", ETK_STOCK_MULTIMEDIA_PLAYER },
+   { "ETK_STOCK_NETWORK", ETK_STOCK_NETWORK },
+   { "ETK_STOCK_NETWORK_WIRELESS", ETK_STOCK_NETWORK_WIRELESS },
+   { "ETK_STOCK_NETWORK_WIRED", ETK_STOCK_NETWORK_WIRED },
+   { "ETK_STOCK_PRINTER", ETK_STOCK_PRINTER },
+   { "ETK_STOCK_PRINTER_REMOTE", ETK_STOCK_PRINTER_REMOTE },
+   { "ETK_STOCK_VIDEO_DISPLAY", ETK_STOCK_VIDEO_DISPLAY },
+   { "ETK_STOCK_EMBLEM_FAVORITE", ETK_STOCK_EMBLEM_FAVORITE },
+   { "ETK_STOCK_EMBLEM_IMPORTANT", ETK_STOCK_EMBLEM_IMPORTANT },
+   { "ETK_STOCK_EMBLEM_PHOTOS", ETK_STOCK_EMBLEM_PHOTOS },
+   { "ETK_STOCK_EMBLEM_READONLY", ETK_STOCK_EMBLEM_READONLY },
+   { "ETK_STOCK_EMBLEM_SYMBOLIC_LINK", ETK_STOCK_EMBLEM_SYMBOLIC_LINK },
+   { "ETK_STOCK_EMBLEM_SYSTEM", ETK_STOCK_EMBLEM_SYSTEM },
+   { "ETK_STOCK_EMBLEM_UNREADABLE", ETK_STOCK_EMBLEM_UNREADABLE },
+   { "ETK_STOCK_FACE_ANGEL", ETK_STOCK_FACE_ANGEL },
+   { "ETK_STOCK_FACE_CRYING", ETK_STOCK_FACE_CRYING },
+   { "ETK_STOCK_FACE_DEVIL_GRIN", ETK_STOCK_FACE_DEVIL_GRIN },
+   { "ETK_STOCK_FACE_GLASSES", ETK_STOCK_FACE_GLASSES },
+   { "ETK_STOCK_FACE_GRIN", ETK_STOCK_FACE_GRIN },
+   { "ETK_STOCK_FACE_KISS", ETK_STOCK_FACE_KISS },
+   { "ETK_STOCK_FACE_PLAIN", ETK_STOCK_FACE_PLAIN },
+   { "ETK_STOCK_FACE_SAD", ETK_STOCK_FACE_SAD },
+   { "ETK_STOCK_FACE_SMILE_BIG", ETK_STOCK_FACE_SMILE_BIG },
+   { "ETK_STOCK_FACE_SMILE", ETK_STOCK_FACE_SMILE },
+   { "ETK_STOCK_FACE_SURPRISE", ETK_STOCK_FACE_SURPRISE },
+   { "ETK_STOCK_FACE_WINK", ETK_STOCK_FACE_WINK },
+   { "ETK_STOCK_APPLICATION_CERTIFICATE", ETK_STOCK_APPLICATION_CERTIFICATE },
+   { "ETK_STOCK_APPLICATION_X_EXECUTABLE", ETK_STOCK_APPLICATION_X_EXECUTABLE 
},
+   { "ETK_STOCK_AUDIO_X_GENERIC", ETK_STOCK_AUDIO_X_GENERIC },
+   { "ETK_STOCK_FONT_X_GENERIC", ETK_STOCK_FONT_X_GENERIC },
+   { "ETK_STOCK_IMAGE_X_GENERIC", ETK_STOCK_IMAGE_X_GENERIC },
+   { "ETK_STOCK_PACKAGE_X_GENERIC", ETK_STOCK_PACKAGE_X_GENERIC },
+   { "ETK_STOCK_TEXT_HTML", ETK_STOCK_TEXT_HTML },
+   { "ETK_STOCK_TEXT_X_GENERIC", ETK_STOCK_TEXT_X_GENERIC },
+   { "ETK_STOCK_TEXT_X_GENERIC_TEMPLATE", ETK_STOCK_TEXT_X_GENERIC_TEMPLATE },
+   { "ETK_STOCK_TEXT_X_SCRIPT", ETK_STOCK_TEXT_X_SCRIPT },
+   { "ETK_STOCK_VIDEO_X_GENERIC", ETK_STOCK_VIDEO_X_GENERIC },
+   { "ETK_STOCK_X_DIRECTORY_DESKTOP", ETK_STOCK_X_DIRECTORY_DESKTOP },
+   { "ETK_STOCK_X_DIRECTORY_NORMAL_DRAG_ACCEPT", 
ETK_STOCK_X_DIRECTORY_NORMAL_DRAG_ACCEPT },
+   { "ETK_STOCK_X_DIRECTORY_NORMAL_HOME", ETK_STOCK_X_DIRECTORY_NORMAL_HOME },
+   { "ETK_STOCK_X_DIRECTORY_NORMAL_OPEN", ETK_STOCK_X_DIRECTORY_NORMAL_OPEN },
+   { "ETK_STOCK_X_DIRECTORY_NORMAL", ETK_STOCK_X_DIRECTORY_NORMAL },
+   { "ETK_STOCK_X_DIRECTORY_NORMAL_VISITING", 
ETK_STOCK_X_DIRECTORY_NORMAL_VISITING },
+   { "ETK_STOCK_X_DIRECTORY_REMOTE", ETK_STOCK_X_DIRECTORY_REMOTE },
+   { "ETK_STOCK_X_DIRECTORY_REMOTE_SERVER", 
ETK_STOCK_X_DIRECTORY_REMOTE_SERVER },
+   { "ETK_STOCK_X_DIRECTORY_REMOTE_WORKGROUP", 
ETK_STOCK_X_DIRECTORY_REMOTE_WORKGROUP },
+   { "ETK_STOCK_X_DIRECTORY_TRASH_FULL", ETK_STOCK_X_DIRECTORY_TRASH_FULL },
+   { "ETK_STOCK_X_DIRECTORY_TRASH", ETK_STOCK_X_DIRECTORY_TRASH },
+   { "ETK_STOCK_X_OFFICE_ADDRESS_BOOK", ETK_STOCK_X_OFFICE_ADDRESS_BOOK },
+   { "ETK_STOCK_X_OFFICE_CALENDAR", ETK_STOCK_X_OFFICE_CALENDAR },   
+   { "ETK_STOCK_X_OFFICE_DOCUMENT", ETK_STOCK_X_OFFICE_DOCUMENT },
+   { "ETK_STOCK_X_OFFICE_PRESENTATION", ETK_STOCK_X_OFFICE_PRESENTATION },
+   { "ETK_STOCK_X_OFFICE_SPREADSHEET", ETK_STOCK_X_OFFICE_SPREADSHEET },
+   { "ETK_STOCK_PLACES_FOLDER", ETK_STOCK_PLACES_FOLDER },
+   { "ETK_STOCK_PLACES_FOLDER_REMOTE", ETK_STOCK_PLACES_FOLDER_REMOTE },
+   { "ETK_STOCK_PLACES_FOLDER_SAVED_SEARCH", 
ETK_STOCK_PLACES_FOLDER_SAVED_SEARCH },
+   { "ETK_STOCK_PLACES_NETWORK_SERVER", ETK_STOCK_PLACES_NETWORK_SERVER },
+   { "ETK_STOCK_PLACES_NETWORK_WORKGROUP", ETK_STOCK_PLACES_NETWORK_WORKGROUP 
},
+   { "ETK_STOCK_PLACES_START_HERE", ETK_STOCK_PLACES_START_HERE },
+   { "ETK_STOCK_PLACES_USER_DESKTOP", ETK_STOCK_PLACES_USER_DESKTOP },
+   { "ETK_STOCK_PLACES_USER_HOME", ETK_STOCK_PLACES_USER_HOME },
+   { "ETK_STOCK_PLACES_USER_TRASH", ETK_STOCK_PLACES_USER_TRASH },
+   { "ETK_STOCK_AUDIO_VOLUME_HIGH", ETK_STOCK_AUDIO_VOLUME_HIGH },
+   { "ETK_STOCK_AUDIO_VOLUME_LOW", ETK_STOCK_AUDIO_VOLUME_LOW },
+   { "ETK_STOCK_AUDIO_VOLUME_MEDIUM", ETK_STOCK_AUDIO_VOLUME_MEDIUM },
+   { "ETK_STOCK_AUDIO_VOLUME_MUTED", ETK_STOCK_AUDIO_VOLUME_MUTED },
+   { "ETK_STOCK_BATTERY_CAUTION", ETK_STOCK_BATTERY_CAUTION },
+   { "ETK_STOCK_DIALOG_ERROR", ETK_STOCK_DIALOG_ERROR },
+   { "ETK_STOCK_DIALOG_INFORMATION", ETK_STOCK_DIALOG_INFORMATION },
+   { "ETK_STOCK_DIALOG_WARNING", ETK_STOCK_DIALOG_WARNING },
+   { "ETK_STOCK_DIALOG_QUESTION", ETK_STOCK_DIALOG_QUESTION },     
+   { "ETK_STOCK_FOLDER_DRAG_ACCEPT", ETK_STOCK_FOLDER_DRAG_ACCEPT },
+   { "ETK_STOCK_FOLDER_OPEN", ETK_STOCK_FOLDER_OPEN },
+   { "ETK_STOCK_FOLDER_VISITING", ETK_STOCK_FOLDER_VISITING },
+   { "ETK_STOCK_IMAGE_LOADING", ETK_STOCK_IMAGE_LOADING },
+   { "ETK_STOCK_IMAGE_MISSING", ETK_STOCK_IMAGE_MISSING },
+   { "ETK_STOCK_MAIL_ATTACHMENT", ETK_STOCK_MAIL_ATTACHMENT },
+   { "ETK_STOCK_NETWORK_ERROR", ETK_STOCK_NETWORK_ERROR },
+   { "ETK_STOCK_NETWORK_IDLE", ETK_STOCK_NETWORK_IDLE },
+   { "ETK_STOCK_NETWORK_OFFLINE", ETK_STOCK_NETWORK_OFFLINE },
+   { "ETK_STOCK_NETWORK_ONLINE", ETK_STOCK_NETWORK_ONLINE },
+   { "ETK_STOCK_NETWORK_RECEIVE", ETK_STOCK_NETWORK_RECEIVE },
+   { "ETK_STOCK_NETWORK_TRANSMIT", ETK_STOCK_NETWORK_TRANSMIT },
+   { "ETK_STOCK_NETWORK_TRANSMIT_RECEIVE", ETK_STOCK_NETWORK_TRANSMIT_RECEIVE 
},
+   { "ETK_STOCK_NETWORK_WIRELESS_ENCRYPTED", 
ETK_STOCK_NETWORK_WIRELESS_ENCRYPTED },
+   { "ETK_STOCK_PRINTER_ERROR", ETK_STOCK_PRINTER_ERROR },
+   { "ETK_STOCK_USER_TRASH_FULL", ETK_STOCK_USER_TRASH_FULL },
+   { "gtk-home", ETK_STOCK_GO_HOME},
+   { "gtk-go-up", ETK_STOCK_GO_UP},
+   { "gtk-stock-timer", ETK_STOCK_APPOINTMENT_NEW},
+   { "gtk-apply", ETK_STOCK_DIALOG_OK},
+   { "gtk-ok", ETK_STOCK_DIALOG_OK},
+   { "gtk-cancel", ETK_STOCK_DIALOG_CANCEL},
+   { "gtk-yes", ETK_STOCK_DIALOG_YES},
+   { "gtk-no", ETK_STOCK_DIALOG_NO},
+   { "gtk-close", ETK_STOCK_DIALOG_CLOSE},
+   { "gtk-new", ETK_STOCK_DOCUMENT_NEW},
+   { "gtk-open", ETK_STOCK_DOCUMENT_OPEN},
+   { "gtk-print", ETK_STOCK_DOCUMENT_PRINT},
+   { "gtk-print-preview", ETK_STOCK_DOCUMENT_PRINT_PREVIEW},
+   { "gtk-properties", ETK_STOCK_DOCUMENT_PROPERTIES},
+   { "gtk-save-as", ETK_STOCK_DOCUMENT_SAVE_AS},
+   { "gtk-save", ETK_STOCK_DOCUMENT_SAVE},
+   { "gtk-clear", ETK_STOCK_EDIT_CLEAR},
+   { "gtk-copy", ETK_STOCK_EDIT_COPY},
+   { "gnome-stock-multiple-file", ETK_STOCK_EDIT_COPY},
+   { "gtk-cut", ETK_STOCK_EDIT_CUT},
+   { "gtk-find", ETK_STOCK_EDIT_FIND},
+   { "gtk-paste", ETK_STOCK_EDIT_PASTE},
+   { "gtk-redo", ETK_STOCK_EDIT_REDO},
+   { "gtk-delete", ETK_STOCK_EDIT_DELETE},
+   { "gtk-find-and-replace", ETK_STOCK_EDIT_FIND_REPLACE},
+   { "gtk-unindent", ETK_STOCK_FORMAT_INDENT_LESS},
+   { "gtk-indent", ETK_STOCK_FORMAT_INDENT_MORE},
+   { "gtk-justify-center", ETK_STOCK_FORMAT_JUSTIFY_CENTER},
+   { "gtk-justify-fill", ETK_STOCK_FORMAT_JUSTIFY_FILL},
+   { "gtk-justify-left", ETK_STOCK_FORMAT_JUSTIFY_LEFT},
+   { "gtk-justify-right", ETK_STOCK_FORMAT_JUSTIFY_RIGHT},
+   { "gtk-bold", ETK_STOCK_FORMAT_TEXT_BOLD},
+   { "gtk-italic", ETK_STOCK_FORMAT_TEXT_ITALIC},
+   { "gtk-strikethrough", ETK_STOCK_FORMAT_TEXT_STRIKETHROUGH},
+   { "gtk-underline", ETK_STOCK_FORMAT_TEXT_UNDERLINE},
+   { "gtk-goto-bottom", ETK_STOCK_GO_BOTTOM},
+   { "gtk-go-down", ETK_STOCK_GO_DOWN},
+   { "gtk-goto-first", ETK_STOCK_GO_FIRST},
+   { "gtk-home", ETK_STOCK_GO_HOME},
+   { "gtk-jump-to", ETK_STOCK_GO_JUMP},
+   { "gtk-goto-last", ETK_STOCK_GO_LAST},
+   { "gtk-go-forward", ETK_STOCK_GO_NEXT},
+   { "gtk-go-back", ETK_STOCK_GO_PREVIOUS},
+   { "gtk-goto-top", ETK_STOCK_GO_TOP},
+   { "gtk-go-up", ETK_STOCK_GO_UP},
+   { "gtk-add", ETK_STOCK_LIST_ADD},
+   { "gtk-remove", ETK_STOCK_LIST_REMOVE},
+   { "gnome-stock-mail-new", ETK_STOCK_MAIL_MESSAGE_NEW},
+   { "gtk-stock-mail-fwd", ETK_STOCK_MAIL_FORWARD},
+   { "gnome-stock-mail-rpl", ETK_STOCK_MAIL_REPLY_SENDER},
+   { "gtk-media-pause", ETK_STOCK_MEDIA_PLAYBACK_PAUSE},
+   { "gtk-media-play", ETK_STOCK_MEDIA_PLAYBACK_START},
+   { "gtk-media-record", ETK_STOCK_MEDIA_RECORD},
+   { "gtk-media-rewind", ETK_STOCK_MEDIA_SEEK_BACKWARD},
+   { "gtk-media-forward", ETK_STOCK_MEDIA_SEEK_FORWARD},
+   { "gtk-media-previous", ETK_STOCK_MEDIA_SKIP_BACKWARD},
+   { "gtk-media-next", ETK_STOCK_MEDIA_SKIP_FORWARD},
+   { "gtk-stop", ETK_STOCK_PROCESS_STOP},
+   { "gtk-quit", ETK_STOCK_SYSTEM_LOG_OUT},
+   { "gtk-refresh", ETK_STOCK_VIEW_REFRESH},
+   { "gtk-about", ETK_STOCK_HELP_BROWSER},
+   { "gnome-stock-about", ETK_STOCK_HELP_BROWSER},
+   { "gtk-help", ETK_STOCK_HELP_BROWSER},
+   { "gtk-info", ETK_STOCK_HELP_BROWSER},
+   { "gnome-stock-mail", ETK_STOCK_INTERNET_MAIL},
+   { "gnome-stock-volume", ETK_STOCK_MULTIMEDIA_VOLUME_CONTROL},
+   { "gtk-select-font", ETK_STOCK_PREFERENCES_DESKTOP_FONT},
+   { "gtk-execute", ETK_STOCK_APPLICATIONS_SYSTEM},
+   { "gtk-preferences", ETK_STOCK_PREFERENCES_SYSTEM},
+   { "gnome-stock-mic", ETK_STOCK_AUDIO_INPUT_MICROPHONE},
+   { "gtk-harddrive", ETK_STOCK_DRIVE_HARDDISK},
+   { "gtk-cdrom", ETK_STOCK_MEDIA_CDROM},
+   { "gtk-floppy", ETK_STOCK_MEDIA_FLOPPY},
+   { "gtk-network", ETK_STOCK_NETWORK},
+   { "gtk-file", ETK_STOCK_TEXT_X_GENERIC},
+   { "gtk-directory", ETK_STOCK_X_DIRECTORY_NORMAL_OPEN},
+   { "gnome-stock-trash-full", ETK_STOCK_X_DIRECTORY_TRASH_FULL},
+   { "gnome-stock-trash", ETK_STOCK_X_DIRECTORY_TRASH},
+   { "gtk-dialog-error", ETK_STOCK_DIALOG_ERROR},
+   { "gtk-dialog-info", ETK_STOCK_DIALOG_INFORMATION},
+   { "gtk-dialog-warning", ETK_STOCK_DIALOG_WARNING},
+   { "gtk-dialog-question", ETK_STOCK_DIALOG_QUESTION},
+   { "gnome-stock-attach", ETK_STOCK_MAIL_ATTACHMENT},
+   { "gtk-missing-image", ETK_STOCK_IMAGE_MISSING},
+};
+
 
 #ifdef ENHANCE_MEM_DEBUG
 Evas_Hash *mem_objects = NULL;
@@ -230,12 +540,13 @@
        PROPERTY_BOOL;
        etk_window_skip_pager_hint_set(ETK_WINDOW(wid-wid), value);
      }   
-   
-   else if(!strcmp(name, "label"))
+
+       else if(!strcmp(name, "label"))
      {
        IF_PARENT_CLASS("GtkButton")
          etk_button_label_set(ETK_BUTTON(wid->wid), node->value);        
      }
+   
    else if(!strcmp(name, "items"))
      {
        IF_PARENT_CLASS("GtkComboBox")
@@ -254,6 +565,56 @@
             while ((tok = strtok(NULL, "\n")) != NULL);             
          }
      }   
+   
+   else if(!strcmp(name, "height_request"))
+     {
+       PROPERTY_INT;
+       etk_object_properties_set(ETK_OBJECT(wid->wid), "height_request", 
value, NULL);
+     }
+   
+   else if(!strcmp(name, "width_request"))
+     {
+       PROPERTY_INT;
+       etk_object_properties_set(ETK_OBJECT(wid->wid), "width_request", value, 
NULL);
+     }     
+   
+   else if(!strcmp(name, "stock"))
+     {
+       Etk_Stock_Id id;
+       PROPERTY_STR;
+       IF_PARENT_CLASS("GtkImage")
+
+       _en_stock_items_hash_init();      
+       id = (Etk_Stock_Id)ecore_hash_get(_en_stock_items_hash, value);
+       etk_object_properties_set(ETK_OBJECT(wid->wid), "stock_id", 
(Etk_Stock_Id)id, NULL);
+     }
+
+   else if(!strcmp(name, "icon_size"))
+     {
+       PROPERTY_INT;
+       IF_PARENT_CLASS("GtkImage");
+       Etk_Stock_Id id = ETK_STOCK_MEDIUM;
+       if (value <= 2) id = ETK_STOCK_SMALL;
+       else if (value >= 5) id = ETK_STOCK_BIG;
+       etk_object_properties_set(ETK_OBJECT(wid->wid), "stock_size", id, NULL);
+     }
+
+   else if(!strcmp(name, "use_stock"))
+     {
+       PROPERTY_BOOL;
+       IF_PARENT_CLASS("GtkButton");
+       char *label;
+       Etk_Stock_Id id = ETK_STOCK_NO_STOCK;
+       
+       if (value)
+       {
+               _en_stock_items_hash_init();
+               label = (char *)etk_button_label_get(ETK_BUTTON(wid->wid));
+               id = (Etk_Stock_Id)ecore_hash_get(_en_stock_items_hash, label);
+               if (id != ETK_STOCK_NO_STOCK)
+                       etk_button_set_from_stock(ETK_BUTTON(wid->wid), 
(Etk_Stock_Id)id);
+       }
+     }
 }
 
 static void
@@ -614,6 +975,7 @@
    if(!en) return;
    exml_destroy(en->xml);
    evas_hash_foreach(en->widgets, _e_widget_hash_free, en);
+       ecore_hash_destroy(_en_stock_items_hash);
    E_FREE(en->main_window);
    E_FREE(en);   
 }
@@ -636,4 +998,21 @@
          "Unfreed memory:\t %ld bytes\n",
          mem_total, mem_calloc, mem_strdup, mem_size);
 #endif  
+}
+
+static void
+_en_stock_items_hash_init(void)
+{
+       int size, i;
+
+       /* the hash table is build only once */
+       if (!_en_stock_items_hash)
+       {
+               _en_stock_items_hash = ecore_hash_new(ecore_str_hash, 
ecore_str_compare);
+               size = sizeof(en_stock_items)/sizeof(en_stock_items[0]);
+               for (i=0; i<size; i++)
+               {
+                       ecore_hash_set(_en_stock_items_hash, 
en_stock_items[i].str, (Etk_Stock_Id *)en_stock_items[i].id);
+               }
+       }
 }
===================================================================
RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance_widget.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- enhance_widget.c    17 May 2006 11:54:28 -0000      1.3
+++ enhance_widget.c    17 May 2006 12:35:02 -0000      1.4
@@ -35,45 +35,12 @@
 _e_widget_new(Enhance *en, EXML_Node *node, Etk_Widget *etk_widget, char *id)
 {
    E_Widget  *widget;
-   Ecore_List *props;
-   EXML_Node  *prop;
-   int width, height;
    
    widget = E_NEW(1, E_Widget);
    widget->wid = etk_widget;
    widget->node = node;
    widget->packing = NULL;
    en->widgets = evas_hash_add(en->widgets, id, widget);
-
-   width = -1;
-   height = -1;
-   props = node->children;
-   ecore_list_goto_first(props);
-   prop = ecore_list_current(props);
-   while(prop != NULL)
-     {  
-       if(!strcmp(prop->tag, "property"))
-         {  
-            char *name;
-
-            name = ecore_hash_get(prop->attributes, "name");
-            if(!name) { prop = ecore_list_next(props); continue; }
-                                                                             
-            if (!strcmp(name, "width_request"))        
-              {
-                 if (prop->value)
-                   width = atoi(prop->value);
-              }
-            else if (!strcmp(name, "height_request"))
-              {
-                 if (prop->value)
-                   height = atoi(prop->value);
-              }
-         }
-       prop = ecore_list_next(props);
-     }
-   if (width != -1 || height != -1)
-     etk_widget_size_request_set(etk_widget, width, height);
 
    return widget;
 }




-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to