void init_bts2(t_linkedlist **bts, t_bunny_pixelarray *buff) { append_elem(bts, init_bt(buff, buttons_erase(), &on_eraser_click)); append_elem(bts, init_bt(buff, buttons_more_border(), &on_plus_click)); append_elem(bts, init_bt(buff, buttons_less_border(), &on_less_click)); append_elem(bts, init_bt(buff, buttons_clean_border(), &on_reset_workplan_click)); append_elem(bts, init_bt(buff, buttons_color(), &on_palette_click)); append_elem(bts, init_bt(buff, buttons_load(), &on_load_tkp_click)); append_elem(bts, init_bt(buff, buttons_save(), &on_save_tkp_click)); append_elem(bts, init_bt(buff, buttons_load_bmp(), &on_load_bmp_click)); }
// Load a new bank into open buttons window void buttons_new_bank(Buttons *buttons,short func,Cfg_ButtonBank *use_bank) { Cfg_ButtonBank *bank; IPCData *ipc; // Check for change if (!buttons_check_change(buttons,1)) return; // Save old bank pointer bank=buttons->bank; // New? if (func==MENU_TOOLBAR_BUTTONS_NEW) { // Create new button bank if (!(buttons->bank=NewButtonBank(1,1))) { // Restore old pointer buttons->bank=bank; return; } // Free old bank CloseButtonBank(bank); } // Load? else if (func==MENU_OPEN_BUTTONS_LOCAL) { // Open button bank if (!(buttons_load(buttons,GUI->screen_pointer,0))) return; } // Defaults else if (func==MENU_TOOLBAR_RESET_DEFAULTS) { // Open button bank if (!(buttons_load(buttons,GUI->screen_pointer,"dopus5:buttons/toolbar_default"))) return; } // Restore else if (func==MENU_TOOLBAR_RESTORE) { // Copy backup bank if (!(buttons->bank=CopyButtonBank(buttons->backup))) { // Restore old pointer buttons->bank=bank; return; } // Free old bank CloseButtonBank(bank); } // Last saved else if (buttons->last_saved[0]) { // Open button bank if (!(buttons_load(buttons,GUI->screen_pointer,buttons->last_saved))) return; } // Lock process list lock_listlock(&GUI->process_list,FALSE); // Find editor if ((ipc=IPC_FindProc(&GUI->process_list,NAME_BUTTON_EDITOR_RUN,0,0))) { // Set flag in bank buttons->bank->window.flags|=BTNWF_TOOLBAR; // Tell editor to change bank pointer IPC_Command( buttons->editor, BUTTONEDIT_CHANGE_BANK, (ULONG)bank, buttons->bank, 0, REPLY_NO_PORT); } // Unlock the process list unlock_listlock(&GUI->process_list); // Signal for re-open IPC_Command(buttons->ipc,BUTTONEDIT_REOPEN,0,0,0,0); // Clear change flag buttons->flags&=~BUTTONF_CHANGED; }