void RestoreTopWidgetData(const char *dlg_name) { const int top_widget_num = g_list_length(g_topwidget_list); int i = 0; char *key = NULL; TopWidget* top_widget = NULL, *found = NULL; for(; i < top_widget_num; i++){ top_widget = (TopWidget*)g_list_nth_data(g_topwidget_list, i); if(top_widget != NULL){ if(strcmp(dlg_name, top_widget->name) == 0){ found = top_widget; break; } } } i = 0; if(found != NULL){ const int len = g_list_length(found->save_data); TopWidgetSaveData* data = NULL; for(; i < len; i++){ data = g_list_nth_data(found->save_data, i); if((data != NULL) && (data->key_value != NULL)){ if((ID_PPD_OPTION < (data->id)) && ((data->id) < ID_PPD_OPTION_BOTTOM)){ key = cngplpIDtoKey(data->id); UpdatePPDDataForCancel(g_cngplp_data, key, data->key_value); MemFree(key); }else{ if(ID_JOBACCOUNT == data->id){ if(0 == strcmp(data->key_value, "1")){ cngplpSetData(g_cngplp_data, data->id, "True"); }else{ cngplpSetData(g_cngplp_data, data->id, "False"); } }else if(ID_SELECTBY == data->id){ if((g_cngplp_data != NULL) && (g_cngplp_data->ppd_opt != NULL)){ g_cngplp_data->ppd_opt->selectby = atoi(data->key_value); } }else if(ID_BOOKLET_DLG == data->id){ UpdatePPDDataForCancel(g_cngplp_data, "Booklet", data->key_value); }else{ cngplpSetData(g_cngplp_data, data->id, data->key_value); } } } } if((g_cngplp_data != NULL) && (g_cngplp_data->ppd_opt != NULL) && (g_cngplp_data->ppd_opt->multipunch != NULL)){ memset(g_cngplp_data->ppd_opt->multipunch, '\0', 16); } RemarkOptValue(g_cngplp_data, "BindEdge"); RemarkOptValue(g_cngplp_data, ""); } }
void UpdateData(const int id, const char *value) { char *text; text = cngplpSetData(g_cngplp_data, id, (char*)value); UpdateWidget(id, text); }
void UpdateEntryWidget(const int id, const char *entry_name) { const gchar *text; text = GetTextEntry(entry_name); if((text != NULL) && (strcmp(text, "")) != 0){ cngplpSetData(g_cngplp_data, id, (char*)text); } }
void UpdateDataCheck(const int id, const int active) { char *text; char *str; str = (active != 0) ? "true" : "false"; text = cngplpSetData(g_cngplp_data, id, str); UpdateWidget(id, text); }
void UpdateDataInt(const int id, const int value) { char *text; char str[NUMDATA]; memset(str, 0, NUMDATA - 1); snprintf(str, NUMDATA - 1, "%d", value); text = cngplpSetData(g_cngplp_data, id, str); UpdateWidget(id, text); }
void UpdateDataCombo(const int id, const char *combo_entry_name) { char *text; char *str; char *tmp; GtkWidget *entry = NULL; entry = glade_xml_get_widget(g_cngplp_xml, combo_entry_name); if(entry != NULL){ tmp =(gchar*)gtk_entry_get_text(GTK_ENTRY(entry)); str = TextToName(id, tmp); if(str == NULL){ str = tmp; } text = cngplpSetData(g_cngplp_data, id, str); UpdateWidget(id, text); } }
gboolean InitController(GtkWidget* main_dlg, char *printer_name, char *print_file_name, const gboolean first_load) { const gboolean ret = TRUE; char *tmp = NULL; SigInit(); g_widget_table = widget_table; g_cngplp_data = cngplpNew(print_file_name); if(NULL == g_cngplp_data){ return FALSE; } cngplpSetData(g_cngplp_data, ID_PRINTERNAME, printer_name); if(g_cngplp_data->file_name != NULL){ tmp = cngplpGetData(g_cngplp_data, ID_DATANAME); if(tmp != NULL){ cngplpSetData(g_cngplp_data, ID_DATANAME, "1"); memFree(tmp); } tmp = cngplpGetData(g_cngplp_data, ID_HOLDQUEUE_DATANAME); if(tmp != NULL){ cngplpSetData(g_cngplp_data, ID_HOLDQUEUE_DATANAME, "1"); memFree(tmp); } tmp = cngplpGetData(g_cngplp_data, ID_SECURED_DOCNAME); if(tmp != NULL){ char *file = strrchr(g_cngplp_data->file_name, '/'); if(file != NULL){ file++; }else{ file = g_cngplp_data->file_name; } cngplpSetData(g_cngplp_data, ID_SECURED_DOCNAME, file); memFree(tmp); } } if(first_load != FALSE){ if(InitAllFiles() < 0){ CloseController(); return FALSE; } const gchar* name = gtk_widget_get_name(main_dlg); SetMainDlgInfo(main_dlg, name); }else{ char res_path[MAX_PATH]; Notebook *note = NULL; if(g_notebook_list != NULL){ note = (Notebook *)(g_notebook_list->data); } GList *tab_cur; tab_cur = note->show_tabs; while(tab_cur != NULL){ free((NotebookTab *)(tab_cur->data)); tab_cur = tab_cur->next; } g_list_free(note->show_tabs); note->show_tabs = NULL; int TopWidget_len = 0, SaveData_len = 0, i = 0, j = 0; TopWidget *TopWidget_cur = NULL; TopWidgetSaveData *savedata = NULL; TopWidget_len = g_list_length(g_topwidget_list); for(i = 0; i < TopWidget_len; i++){ TopWidget_cur = (TopWidget *)g_list_nth_data(g_topwidget_list, i); if(TopWidget_cur != NULL){ SaveData_len = g_list_length(TopWidget_cur->save_data); } for(j = 0; j < SaveData_len; j++){ savedata = (TopWidgetSaveData *)g_list_nth_data(TopWidget_cur->save_data, j); DeleteTopWidgetSaveData(savedata); } g_list_free(TopWidget_cur->save_data); TopWidget_cur->save_data = NULL; } FreeResource(); memset(res_path, 0, sizeof(res_path)); strcat(res_path, PACKAGE_CONFIG_DIR); if(g_cngplp_data != NULL){ InitKeyTextList(res_path, g_cngplp_data->ppd_opt->pcfile_name); } FuncInfo* cur_func = g_load_func; FuncInfo* next_func = cur_func; while(cur_func != NULL){ next_func = cur_func->next; free(cur_func); cur_func = NULL; cur_func = next_func; } g_load_func = NULL; } LoadPropFuncByConfigfile(first_load); return ret; }