+
+LoadLayoutItem::LoadLayoutItem(LoadLayout *load_layout, const char *text, int no, int hotkey)
+ : BC_MenuItem(text, "", hotkey)
+{
+ this->no = no;
+ this->load_layout = load_layout;
+ if( hotkey ) {
+ char hot_txt[BCSTRLEN];
+ sprintf(hot_txt, _("CtlSft+F%d"), hotkey-KEY_F1+1);
+ set_ctrl(); set_shift();
+ set_hotkey_text(hot_txt);
+ }
+}
+
+int LoadLayoutItem::handle_event()
+{
+ MWindow *mwindow = load_layout->mwindow;
+ switch( load_layout->action ) {
+ case LAYOUT_LOAD:
+ mwindow->load_layout(no);
+ break;
+ case LAYOUT_SAVE:
+ mwindow->save_layout(no);
+ break;
+ }
+ return 1;
+}
+
+LoadLayout::LoadLayout(MWindow *mwindow, const char *text, int action)
+ : BC_MenuItem(text)
+{
+ this->mwindow = mwindow;
+ this->action = action;
+}
+
+void LoadLayout::create_objects()
+{
+ BC_SubMenu *layout_submenu = new BC_SubMenu();
+ add_submenu(layout_submenu);
+ for( int i=1; i<=4; ++i ) {
+ char text[BCSTRLEN];
+ sprintf(text, _("Layout %d"), i);
+ LoadLayoutItem *load_layout_item =
+ new LoadLayoutItem(this, text, i,
+ action==LAYOUT_LOAD ? KEY_F1-1+i : 0);
+ layout_submenu->add_submenuitem(load_layout_item);
+ }
+}
+