Browse Source

Menubar improvements

Josh Engebretson 10 years ago
parent
commit
a5d7e04c5c

+ 4 - 0
Data/AtomicEditor/Resources/EditorData/AtomicEditor/editor/ui/mainframe.tb.txt

@@ -28,6 +28,10 @@ TBLayout: distribution: gravity, axis: y
 							@include definitions>menubutton
 							text Build
 							id menu build
+						TBButton
+							@include definitions>menubutton
+							text Tools
+							id menu tools
 						TBButton
 							@include definitions>menubutton
 							text Help

+ 7 - 0
Source/AtomicEditor/Source/AEEditorStrings.cpp

@@ -45,6 +45,13 @@ void EditorStrings::InitializeStrings()
     stringLookup_[ShortcutPaste] = "⌘V";
     stringLookup_[ShortcutFind] = "⌘F";
     stringLookup_[ShortcutBeautify] = "⌘B";
+
+    stringLookup_[ShortcutSaveFile] = "⌘S";
+    stringLookup_[ShortcutCloseFile] = "⌘W";
+
+    stringLookup_[ShortcutPlay] = "⌘P";
+
+
 }
 
 void EditorStrings::HandleEditorShutdown(StringHash eventType, VariantMap& eventData)

+ 4 - 1
Source/AtomicEditor/Source/AEEditorStrings.h

@@ -30,7 +30,10 @@ public:
         ShortcutCopy,
         ShortcutPaste,
         ShortcutFind,
-        ShortcutBeautify
+        ShortcutBeautify,
+        ShortcutCloseFile,
+        ShortcutSaveFile,
+        ShortcutPlay
     };
 
 

+ 19 - 9
Source/AtomicEditor/Source/UI/UIMainFrame.cpp

@@ -61,19 +61,20 @@ MainFrame::MainFrame(Context* context) :
     menuAtomicEditorSource.AddItem(new TBGenericStringItem("Check for Updates", TBIDC("check update")));
     menuAtomicEditorSource.AddItem(new TBGenericStringItem("Quit", TBIDC("quit")));
 
-
-    menuFileSource.AddItem(new TBGenericStringItem("New Project", TBIDC("new project")));
-    menuFileSource.AddItem(new TBGenericStringItem("Open Project", TBIDC("open project")));
-    menuFileSource.AddItem(new TBGenericStringItem("Save Project", TBIDC("save project")));
-    menuFileSource.AddItem(new TBGenericStringItem("-"));
-    menuFileSource.AddItem(new TBGenericStringItem("Close Project", TBIDC("close project")));
-    menuFileSource.AddItem(new TBGenericStringItem("-"));
-    menuFileSource.AddItem(new TBGenericStringItem("-"));
-    menuFileSource.AddItem(new TBGenericStringItem("Close File"));
+    menuFileSource.AddItem(new MenubarItem("New Project", TBIDC("new project")));
+    menuFileSource.AddItem(new MenubarItem("Open Project", TBIDC("open project")));
+    menuFileSource.AddItem(new MenubarItem("Save Project", TBIDC("save project")));
+    menuFileSource.AddItem(new MenubarItem("-"));
+    menuFileSource.AddItem(new MenubarItem("Close Project", TBIDC("close project")));
+    menuFileSource.AddItem(new MenubarItem("-"));
+    menuFileSource.AddItem(new MenubarItem("Save File", TBIDC("save file"), EDITOR_STRING(ShortcutSaveFile)));
+    menuFileSource.AddItem(new MenubarItem("Close File", TBIDC("close file"), EDITOR_STRING(ShortcutCloseFile)));
 
     menuBuildSource.AddItem(new TBGenericStringItem("Build", TBIDC("project_build")));
     menuBuildSource.AddItem(new TBGenericStringItem("Build Settings", TBIDC("project_build_settings")));
 
+    menuToolsSource.AddItem(new MenubarItem("Tiled Map Editor", TBIDC("tools tiled")));
+
     menuEditSource.AddItem(new MenubarItem("Undo", TBIDC("edit undo"),  EDITOR_STRING(ShortcutUndo)));
     menuEditSource.AddItem(new MenubarItem("Redo", TBIDC("edit redo"),  EDITOR_STRING(ShortcutRedo)));
     menuEditSource.AddItem(new MenubarItem("-"));
@@ -83,6 +84,8 @@ MainFrame::MainFrame(Context* context) :
     menuEditSource.AddItem(new MenubarItem("-"));
     menuEditSource.AddItem(new MenubarItem("Find", TBIDC("edit find"),  EDITOR_STRING(ShortcutFind)));
     menuEditSource.AddItem(new MenubarItem("Format Code", TBIDC("format code"),  EDITOR_STRING(ShortcutBeautify)));
+    menuEditSource.AddItem(new MenubarItem("-"));
+    menuEditSource.AddItem(new MenubarItem("Play", TBIDC("play"),  EDITOR_STRING(ShortcutPlay)));
 
     menuResourcesSource.AddItem(new TBGenericStringItem("Create", &menuResourcesCreateSource));
     menuResourcesSource.AddItem(new TBGenericStringItem("-"));
@@ -635,6 +638,13 @@ bool MainFrame::OnEvent(const TBWidgetEvent &ev)
 
             return true;
         }
+        else if (ev.target->GetID() == TBIDC("menu tools"))
+        {
+            if (TBMenuWindow *menu = new TBMenuWindow(ev.target, TBIDC("tools popup")))
+                menu->Show(&menuToolsSource, TBPopupAlignment());
+
+            return true;
+        }
         else if (ev.target->GetID() == TBIDC("menu issues"))
         {
             resourceframe_->ShowIssuesWidget(!resourceframe_->IssuesWidgetVisible());

+ 3 - 1
Source/AtomicEditor/Source/UI/UIMainFrame.h

@@ -37,7 +37,7 @@ class MainFrame : public AEWidget
     OBJECT(MainFrame);
 
     TBGenericStringItemSource menuAtomicEditorSource;
-    TBGenericStringItemSource menuFileSource;
+    MenubarItemSource menuFileSource;
     MenubarItemSource menuEditSource;
     TBGenericStringItemSource menuBuildSource;
 
@@ -46,6 +46,8 @@ class MainFrame : public AEWidget
     TBGenericStringItemSource menuHelpSource;
     TBGenericStringItemSource menuDeveloperSource;
 
+    MenubarItemSource menuToolsSource;
+
 public:
     /// Construct.
     MainFrame(Context* context);

+ 19 - 14
Source/AtomicEditor/Source/UI/UIMenubar.cpp

@@ -28,39 +28,42 @@ MenubarItemWidget::MenubarItemWidget(MenubarItem *item, MenubarItemSource *sourc
 
     TBWidget* root = GetContentRoot();
 
+    TBFontDescription fd;
+    fd.SetID(TBIDC("Vera"));
+    fd.SetSize(13);
+
     TBTextField* text = new TBTextField();
+    text->SetIgnoreInput(true);
     text->SetText(item->str);
+    text->SetFontDescription(fd);
     root->AddChild(text);
 
     if (item->shortcut_.Length())
     {
         TBWidget* spacer = new TBWidget();
+        spacer->SetIgnoreInput(true);
         spacer->SetGravity(WIDGET_GRAVITY_LEFT_RIGHT);
         root->AddChild(spacer);
 
         TBTextField* shortcut = new TBTextField();
+        shortcut->SetIgnoreInput(true);
         shortcut->SetText(item->shortcut_.CString());
+        shortcut->SetFontDescription(fd);
         shortcut->SetGravity(WIDGET_GRAVITY_RIGHT);
         root->AddChild(shortcut);
-
     }
 
 }
 
 bool MenubarItemWidget::OnEvent(const TBWidgetEvent &ev)
 {
-    if (ev.type == EVENT_TYPE_CLICK && ev.target->GetID() == TBIDC("check"))
+    if (m_source && ev.type == EVENT_TYPE_CLICK && ev.target == this)
     {
-        // MenubarItem *item = m_source->GetItem(m_index);
-        m_source->InvokeItemChanged(m_index, m_source_viewer);
-        return true;
+        //OpenSubMenu();
+        return false;
     }
-    else if (ev.type == EVENT_TYPE_CLICK && ev.target->GetID() == TBIDC("delete"))
-    {
-        m_source->DeleteItem(m_index);
-        return true;
-    }
-    return TBLayout::OnEvent(ev);
+
+    return false;
 }
 
 // == AdvancedItemSource ======================================================
@@ -78,16 +81,18 @@ TBWidget *MenubarItemSource::CreateItemWidget(int index, TBSelectItemViewer *vie
         if (TBSeparator *separator = new TBSeparator)
         {
             separator->SetGravity(WIDGET_GRAVITY_ALL);
-            separator->SetSkinBg(TBIDC("TBSelectItem.separator"));
+            separator->SetSkinBg(TBIDC("AESeparator"));
             return separator;
         }
     }
 
     if (TBLayout *layout = new MenubarItemWidget(GetItem(index), this, viewer, index))
+    {
+        layout->SetID(GetItem(index)->id);
         return layout;
+    }
+
     return NULL;
 }
 
-
-
 }

+ 9 - 1
Source/ThirdParty/TurboBadger/tb_select_item.cpp

@@ -138,9 +138,17 @@ void TBSelectItemViewer::SetSource(TBSelectItemSource *source)
 
 TBSelectItemSource::~TBSelectItemSource()
 {
+    TBLinkListOf<TBSelectItemViewer>::Iterator iter = m_viewers.IterateForward();
+    while (TBSelectItemViewer *viewer = iter.GetAndStep())
+    {
+        viewer->SetSource(nullptr);
+    }
+
+    m_viewers.RemoveAll();
+
 	// If this assert trig, you are deleting a model that's still set on some
 	// TBSelect widget. That might be dangerous.
-	assert(!m_viewers.HasLinks());
+    assert(!m_viewers.HasLinks());
 }
 
 bool TBSelectItemSource::Filter(int index, const char *filter)