00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00026
00027
00028
00029
00030 #ifndef __CONTROL_MODULE__H__
00031 #define __CONTROL_MODULE__H__
00032
00033 #include "lister.h"
00034 #include "gtkErrorScreen.h"
00035 #include "metadataStoreManager.h"
00036
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041
00042 #define CATEGORIES_LIST (-1)
00043
00044
00045 #define CF_ID "CF"
00046 #define SD_ID "SD"
00047 #define USB_ID "USB"
00048 #define MAIN_MEMORY_ID "MAIN"
00049 #define RECENT_DOCS_ID "RECENT"
00050
00051
00052 #define ITEM_SELECT_TIMEOUT 6 // seconds
00053 #define ITEM_SELECT_TIMER_INTERVAL 500 // milliseconds
00054 #define ITEM_SELECT_TIMEOUT_TICKS ((ITEM_SELECT_TIMEOUT * 1000) / ITEM_SELECT_TIMER_INTERVAL)
00055
00056
00057 #define BG_CONNECT_RETRY_INTERVAL 5
00058
00059 #define PINCODE_MAX_IDLE_TIME (5*60*1000) // in milliseconds
00060
00061
00062
00063 #define ILLEGAL_FILENAME_CHARS "*?/\\\"<>:|";
00064
00065
00066 #define CONTENTLISTER_GROUP "CONTENTLISTER"
00067 #define DO_SHARE_KEY "doc_sharing"
00068 #define DO_SIGN_KEY "doc_signing"
00069
00070 #define MODE_MENU_REFERENCE_MATERIALS_DIRNAME "_reference/"
00071
00072 #define ERROR_STRING_BUFLEN 256
00073
00074 typedef enum
00075 {
00076 ctrlScanCurrent = 0,
00077 ctrlScanPrevious = 1,
00078 ctrlScanNext = 2,
00079 } ctrlScanType_e;
00080
00081 typedef struct _contentLister
00082 {
00083 lsLister_t* lister;
00084 GtkWidget* topLevelWindow;
00085
00086 GtkWidget* listerScreen;
00087 GtkWidget* listerArea;
00088 GtkWidget* contentEditWnd;
00089 GtkWidget* searchWnd;
00090 GtkWidget* sortWnd;
00091 GtkWidget* distListWnd;
00092
00093 GtkWidget* errorScreen;
00094 ctrlErrorType_e currentError;
00095
00096 GtkWidget* pincodeScreen;
00097
00098 clDisplayItem_t items[MAX_ITEMS_ON_ONE_PAGE];
00099 int itemCount;
00100 st_ContentType_e currentContentType;
00101 st_ContentType_e previousContentType;
00102 int currentFocus;
00103 int pagecount;
00104 int currentPage;
00105 } ContentLister;
00106
00107 typedef enum {
00108 STATE_NORMAL = 0,
00109 STATE_USB_CONNECTED,
00110 STATE_DOWNLOADMGR,
00111 STATE_MISC,
00112 STATE_PINCODE,
00113 STATE_LANG_SEL,
00114 STATE_LAST
00115 } listerState_t;
00116
00117
00118 typedef enum
00119 {
00120 connect_manual,
00121 connect_background,
00122 connect_from_pincode,
00123 connect_after_reboot,
00124 connect_timed_ids_with_sw,
00125 connect_timed_ids_content_only,
00126 connect_timed_ids_background
00127 } e_ctrl_connect_reason_t;
00128
00141 ContentLister *ctrlInit(GtkWidget * topLevelWindow);
00142
00146 void ctrlSetScreenTexts(void);
00147
00156 void ctrlDestroy(ContentLister * contentLister);
00157
00166 void ctrl_listItem_clicked(int index, gpointer data);
00167
00168
00169 st_ContentType_e ctrl_get_storageType(gchar* szExtID);
00170
00179 void ctrl_storage_changed(st_ContentType_e storageType, gboolean storagePresent);
00180
00188 void ctrl_contentType_button_clicked(st_ContentType_e type);
00189
00198 void ctrl_goto_page(int pagenumber);
00199
00200 void ctrl_connect_button_clicked(void);
00201 void ctrl_disconnect(connectScr_e screen);
00202 void ctrl_disconnect_wait(void);
00203 void ctrl_background_connect_timeout_start(gboolean read_settings);
00204 void ctrl_set_connect_icon(void);
00205 void ctrl_new_content_received(void);
00206 void ctrl_mode_button_long_clicked(void);
00207 void ctrl_usbmode_keypress(void);
00208
00209
00210 void ctrl_rescan_current(void);
00211
00212 unsigned int ctrl_get_item_index(ContentLister * theContentLister);
00213 int ctrl_before_file_clicked(clDisplayItem_t * theItem);
00214
00215 void ctrl_mode_button_clicked(void);
00216 void ctrl_display_download_history(void);
00217 void ctrl_cleanup_download_history(void);
00218 void ctrl_battery_low_screen(gint percentage, gint time_left, gboolean shutdown);
00219 void ctrl_on_icon_clicked(int iconID, int iconState);
00220 void ctrl_on_lock_screen_clicked(int iconState);
00221 void ctrl_on_toolbar_synchronised();
00222
00223 void ctrl_show_lister_area(void);
00224 void ctrl_hide_lister_area(void);
00225
00226 void ctrl_hide_misc_screen(void);
00227
00228 listerState_t getListerState();
00229 void setListerState(listerState_t newstate);
00230 gboolean listerIsErrorScreenVisible(void);
00231 void listerHideErrorScreen(void);
00232 void listerShowErrorScreen(ctrlErrorType_e errorType);
00233 void listerShowUSBScreen(void);
00234 void listerHideUSBScreen(void);
00235
00236 void ctrl_update_pagebar(void);
00237 void ctrl_shutdown(void);
00238
00239 void ctrl_display_search_result(void);
00240 void ctrl_hide_search_wnd(void);
00241
00242
00243 const char * ctrl_get_abscurr_location(char* sPath,int iSize);
00244 gboolean ctrl_location_is_outbox(const char* location);
00245
00246
00247 void ctrl_pincode_setting_init(void);
00248
00249 void ctrl_show_pincode_screen(showPincodeReason_t reason, on_passed_callback_t* on_passed_callback, on_cancel_callback_t* on_cancel_callback);
00250 void ctrl_hide_pincode_screen (void);
00251
00252 gboolean ctrl_pincode_is_for_locking(void);
00253 void ctrl_pincode_overview_button_clicked(void);
00254 void ctrl_pincode_connect_button_clicked (void);
00255 void ctrl_pincode_button_clicked(void);
00256
00257 gboolean ctrl_is_connect_from_pincode (void);
00258 void ctrl_connect_back_to_pincode_screen(void);
00259
00260 void ctrl_startup(void);
00261
00262 void ctrl_export_config(void);
00263 void ctrl_handle_import_config(void);
00264
00265 gboolean on_idle_connect_start_background(gpointer p);
00266 void ctrl_connect(connectScr_e screen, e_ctrl_connect_reason_t reason);
00267
00268 #ifdef __cplusplus
00269 }
00270 #endif //* __cplusplus */
00271
00272 #endif //__CONTROL_MODULE__H__