Changeset 2075
- Timestamp:
- 08/10/12 05:02:54 (10 months ago)
- Location:
- trunk
- Files:
-
- 6 edited
-
CHDK/LANG/english.lng (modified) (1 diff)
-
core/conf.c (modified) (1 diff)
-
core/gui.c (modified) (2 diffs)
-
core/gui_lang.h (modified) (1 diff)
-
core/gui_user_menu.c (modified) (4 diffs)
-
include/conf.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/CHDK/LANG/english.lng
r2069 r2075 704 704 574 "Show HELP" 705 705 575 "Use popup to edit value" 706 707 576 "Add script to User Menu" -
trunk/core/conf.c
r2065 r2075 463 463 CONF_INFO(293, conf.help_was_shown, CONF_DEF_VALUE, i:0, NULL), 464 464 CONF_INFO(294, conf.menuedit_popup, CONF_DEF_VALUE, i:1, NULL), 465 466 // NOTE : there must be USER_MENU_ITEMS entries in this section 467 CONF_INFO(295, conf.user_menu_script_file[ 0], CONF_CHAR_PTR, ptr:"", NULL), 468 CONF_INFO(296, conf.user_menu_script_file[ 1], CONF_CHAR_PTR, ptr:"", NULL), 469 CONF_INFO(297, conf.user_menu_script_file[ 2], CONF_CHAR_PTR, ptr:"", NULL), 470 CONF_INFO(298, conf.user_menu_script_file[ 3], CONF_CHAR_PTR, ptr:"", NULL), 471 CONF_INFO(299, conf.user_menu_script_file[ 4], CONF_CHAR_PTR, ptr:"", NULL), 472 CONF_INFO(300, conf.user_menu_script_file[ 5], CONF_CHAR_PTR, ptr:"", NULL), 473 CONF_INFO(301, conf.user_menu_script_file[ 6], CONF_CHAR_PTR, ptr:"", NULL), 474 CONF_INFO(302, conf.user_menu_script_file[ 7], CONF_CHAR_PTR, ptr:"", NULL), 475 CONF_INFO(303, conf.user_menu_script_file[ 8], CONF_CHAR_PTR, ptr:"", NULL), 476 CONF_INFO(304, conf.user_menu_script_file[ 9], CONF_CHAR_PTR, ptr:"", NULL), 477 CONF_INFO(305, conf.user_menu_script_file[10], CONF_CHAR_PTR, ptr:"", NULL), 478 CONF_INFO(306, conf.user_menu_script_file[11], CONF_CHAR_PTR, ptr:"", NULL), 479 CONF_INFO(307, conf.user_menu_script_file[12], CONF_CHAR_PTR, ptr:"", NULL), 480 CONF_INFO(308, conf.user_menu_script_file[13], CONF_CHAR_PTR, ptr:"", NULL), 481 482 // NOTE : there must be USER_MENU_ITEMS entries in this section too 483 CONF_INFO(309, conf.user_menu_script_title[ 0], CONF_CHAR_PTR, ptr:"", NULL), 484 CONF_INFO(310, conf.user_menu_script_title[ 1], CONF_CHAR_PTR, ptr:"", NULL), 485 CONF_INFO(311, conf.user_menu_script_title[ 2], CONF_CHAR_PTR, ptr:"", NULL), 486 CONF_INFO(312, conf.user_menu_script_title[ 3], CONF_CHAR_PTR, ptr:"", NULL), 487 CONF_INFO(313, conf.user_menu_script_title[ 4], CONF_CHAR_PTR, ptr:"", NULL), 488 CONF_INFO(314, conf.user_menu_script_title[ 5], CONF_CHAR_PTR, ptr:"", NULL), 489 CONF_INFO(315, conf.user_menu_script_title[ 6], CONF_CHAR_PTR, ptr:"", NULL), 490 CONF_INFO(316, conf.user_menu_script_title[ 7], CONF_CHAR_PTR, ptr:"", NULL), 491 CONF_INFO(317, conf.user_menu_script_title[ 8], CONF_CHAR_PTR, ptr:"", NULL), 492 CONF_INFO(318, conf.user_menu_script_title[ 9], CONF_CHAR_PTR, ptr:"", NULL), 493 CONF_INFO(319, conf.user_menu_script_title[10], CONF_CHAR_PTR, ptr:"", NULL), 494 CONF_INFO(320, conf.user_menu_script_title[11], CONF_CHAR_PTR, ptr:"", NULL), 495 CONF_INFO(321, conf.user_menu_script_title[12], CONF_CHAR_PTR, ptr:"", NULL), 496 CONF_INFO(322, conf.user_menu_script_title[13], CONF_CHAR_PTR, ptr:"", NULL), 497 465 498 }; 466 499 #define CONF_NUM (sizeof(conf_info)/sizeof(conf_info[0])) -
trunk/core/gui.c
r2073 r2075 196 196 } 197 197 198 extern void add_script_to_user_menu( char * , char *); 199 200 static void gui_add_script_to_user_menu(int arg) { 201 add_script_to_user_menu( conf.script_file , script_title ); 202 } 203 198 204 static const char* gui_script_autostart_modes[]= { "Off", "On", "Once"}; 199 205 … … 206 212 MENU_ITEM (0x5c,LANG_MENU_LUA_RESTART, MENUITEM_BOOL, &conf.debug_lua_restart_on_error, 0 ), 207 213 #endif 214 MENU_ITEM (0x35,LANG_MENU_USER_MENU_SCRIPT_ADD, MENUITEM_PROC, gui_add_script_to_user_menu, 0 ), 208 215 MENU_ITEM (0x5d,LANG_MENU_SCRIPT_DEFAULT_VAL, MENUITEM_PROC, gui_load_script_default, 0 ), 209 216 MENU_ITEM(0x5e,LANG_MENU_SCRIPT_PARAM_SET, MENUITEM_ENUM, gui_script_param_set_enum, &conf.script_param_set ), -
trunk/core/gui_lang.h
r2065 r2075 706 706 #define LANG_MENU_MENUEDIT_POPUP 575 707 707 708 #define GUI_LANG_ITEMS 575 708 #define LANG_MENU_USER_MENU_SCRIPT_ADD 576 709 710 #define GUI_LANG_ITEMS 576 709 711 710 712 //------------------------------------------------------------------- -
trunk/core/gui_user_menu.c
r2065 r2075 65 65 } 66 66 67 68 void gui_load_user_menu_script(const char *fn) 69 { 70 if (fn) { 71 script_load(fn, SCRIPT_LOAD_LAST_PARAMSET ); 72 load_params_names_cfg(); 73 74 // exit menu system on the assumption the user will want to run the script just loaded 75 76 gui_set_mode(&altGuiHandler); 77 kbd_reset_autoclicked_key(); 78 rinit(); 79 } 80 } 81 82 83 void add_script_to_user_menu( char * fname , char * title ) 84 { 85 int i ; 86 /* 87 * Insert script info at end of existing entries 88 */ 89 for(i = 1; i < USER_MENU_ITEMS + 1; i++) 90 { 91 if(!user_submenu_items[i].text) // insert script title & full filename in next available spot 92 { 93 strcpy(conf.user_menu_script_file[i-1], fname) ; 94 strcpy(conf.user_menu_script_title[i-1], title) ; 95 96 user_submenu_items[i].symbol = 0x35; 97 user_submenu_items[i].opt_len = 0 ; 98 user_submenu_items[i].type = MENUITEM_PROC; 99 user_submenu_items[i].text = (int) conf.user_menu_script_title[i-1]; 100 user_submenu_items[i].value = (int *) gui_load_user_menu_script ; 101 user_submenu_items[i].arg = (int) conf.user_menu_script_file[i-1] ; 102 103 char buf[200]; 104 sprintf(buf,lang_str(LANG_USER_MENU_ITEM_ADDED), lang_str(user_submenu_items[i].text)); 105 gui_mbox_init(LANG_MENU_USER_MENU, (int)buf, MBOX_BTN_OK|MBOX_TEXT_CENTER, NULL); 106 return; 107 } 108 } 109 gui_mbox_init(LANG_MENU_USER_MENU, LANG_USER_MENU_FULL, MBOX_BTN_OK|MBOX_TEXT_CENTER, NULL); 110 } 111 112 67 113 void del_user_menu_item(int* cur_memnu_item_indx) 68 114 { … … 79 125 { 80 126 user_submenu_items[i] = user_submenu_items[i+1]; 127 strcpy(conf.user_menu_script_file[i-1], conf.user_menu_script_file[i] ) ; 128 strcpy(conf.user_menu_script_title[i-1], conf.user_menu_script_title[i] ) ; 129 if( user_submenu_items[i].value == (int *) gui_load_user_menu_script ) { 130 user_submenu_items[i].text = (int) conf.user_menu_script_title[i-1]; 131 user_submenu_items[i].arg = (int) conf.user_menu_script_file[i-1] ; 132 } 81 133 } 82 134 … … 91 143 static void move_user_menu_item(int* cur_memnu_item_indx, int dir) 92 144 { 145 int src_index, dst_index ; 146 char tbuff[CONF_STR_LEN]; 147 148 src_index=*cur_memnu_item_indx ; 149 dst_index=*cur_memnu_item_indx + dir; 150 93 151 // Move current user menu item up (dir = -1) or down (dir = 1) 94 CMenuItem tmp_menu_item = user_submenu_items[*cur_memnu_item_indx + dir]; 95 user_submenu_items[*cur_memnu_item_indx + dir] = user_submenu_items[*cur_memnu_item_indx]; 96 user_submenu_items[*cur_memnu_item_indx] = tmp_menu_item; 97 *cur_memnu_item_indx += dir; 152 153 CMenuItem tmp_menu_item = user_submenu_items[dst_index]; 154 user_submenu_items[dst_index] = user_submenu_items[src_index]; 155 user_submenu_items[src_index] = tmp_menu_item; 156 157 src_index-- ; dst_index--; 158 159 strncpy(tbuff, conf.user_menu_script_file[dst_index],CONF_STR_LEN-1) ; 160 strncpy(conf.user_menu_script_file[dst_index], conf.user_menu_script_file[src_index],CONF_STR_LEN-1) ; 161 strncpy(conf.user_menu_script_file[src_index], tbuff, CONF_STR_LEN-1); 162 163 strncpy(tbuff, conf.user_menu_script_title[dst_index],CONF_STR_LEN-1) ; 164 strncpy(conf.user_menu_script_title[dst_index], conf.user_menu_script_title[src_index],CONF_STR_LEN-1) ; 165 strncpy(conf.user_menu_script_title[src_index], tbuff,CONF_STR_LEN-1) ; 166 167 src_index++ ; dst_index++ ; 168 169 if( user_submenu_items[src_index].value == (int *) gui_load_user_menu_script ) { 170 user_submenu_items[src_index].text = (int) conf.user_menu_script_title[src_index-1]; 171 user_submenu_items[src_index].arg = (int) conf.user_menu_script_file[src_index-1] ; 172 } 173 174 if( user_submenu_items[dst_index].value == (int *) gui_load_user_menu_script ) { 175 user_submenu_items[dst_index].text = (int) conf.user_menu_script_title[dst_index-1]; 176 user_submenu_items[dst_index].arg = (int) conf.user_menu_script_file[dst_index-1] ; 177 } 178 179 *cur_memnu_item_indx += dir; 180 98 181 } 99 182 … … 147 230 void user_menu_save() { 148 231 int x; 149 for (x=0; x<USER_MENU_ITEMS; x++) {232 for (x=0; x<USER_MENU_ITEMS; x++) { 150 233 /* 151 234 * First entry in user_submenu_items is reserved for the "Main Menu" 152 235 * conf.user_menu_vars only traks/saves the real user entries. 153 236 */ 154 conf.user_menu_vars[x] = lang_strhash31(user_submenu_items[x+1].text); 155 } 237 238 if( user_submenu_items[x+1].text ) 239 { 240 if ( user_submenu_items[x+1].value ==(int *) gui_load_user_menu_script ) 241 { 242 conf.user_menu_vars[x] = -1 ; // flag script entries specially 243 } 244 else 245 { 246 conf.user_menu_vars[x] = lang_strhash31(user_submenu_items[x+1].text); // otherwise save a hash 247 } 248 } 249 else 250 { 251 conf.user_menu_vars[x] = 0 ; 252 *(char *)conf.user_menu_script_title[x] = 0; 253 *(char*)conf.user_menu_script_file[x] = 0 ; 254 } 255 } 156 256 } 157 257 158 258 void user_menu_restore() { 159 int x; 160 CMenuItem* item=0; 161 162 for (x=0; x<USER_MENU_ITEMS; x++) { 163 /* 164 * First entry in user_submenu_items is reserved for the "Main Menu" 165 * conf.user_menu_vars only traks/saves the real user entries. 166 */ 167 item = find_mnu(&root_menu, conf.user_menu_vars[x]); 168 if ( item ) 169 user_submenu_items[x+1] = *item; 170 } 171 } 259 int x,y ; 260 CMenuItem* item=0; 261 /* 262 * First entry in user_submenu_items is reserved for the "Main Menu" 263 * conf.user_menu_vars only tracks/saves the real user entries. 264 */ 265 266 for (x=0, y=1; x<USER_MENU_ITEMS; x++, y++) { 267 268 if( conf.user_menu_vars[x] == -1 ) // special flag- there is no hash for script entries 269 { 270 user_submenu_items[y].symbol = 0x35; // restore the script entry 271 user_submenu_items[y].opt_len = 0 ; 272 user_submenu_items[y].type = MENUITEM_PROC; 273 user_submenu_items[y].text = (int) conf.user_menu_script_title[x]; 274 user_submenu_items[y].value = (int *) gui_load_user_menu_script ; 275 user_submenu_items[y].arg = (int) conf.user_menu_script_file[x] ; 276 277 } 278 else 279 { 280 if(conf.user_menu_vars[x] >0 ) // look up the menu text 281 item = find_mnu(&root_menu, conf.user_menu_vars[x]); 282 else item = NULL ; 283 284 if ( item ) // add back in if found 285 { 286 user_submenu_items[y] = *item; 287 } 288 else // otherwise clear the menu entry 289 { 290 user_submenu_items[y].text = 0; 291 break ; // and exit - all done ! 292 } 293 } 294 } 295 } 296 -
trunk/include/conf.h
r2065 r2075 380 380 int help_was_shown; // 0-help wasn't shown yet, 1- help already was shown 381 381 int menuedit_popup; // 0-menuedit in-menu, 1-menu edit is popup 382 383 // full path & filename 384 char user_menu_script_file[USER_MENU_ITEMS][CONF_STR_LEN]; 385 // @title string from file 386 char user_menu_script_title[USER_MENU_ITEMS][CONF_STR_LEN]; 387 382 388 } Conf; 383 389
Note: See TracChangeset
for help on using the changeset viewer.