diff --git a/data/gui.xml b/data/gui.xml index 9f8d24693..29151082f 100644 --- a/data/gui.xml +++ b/data/gui.xml @@ -593,14 +593,6 @@ - - - - - - - - @@ -729,6 +721,15 @@ + + + + + + + + + diff --git a/data/skins/default/sheet.png b/data/skins/default/sheet.png index 2d8822103..8becb8128 100644 Binary files a/data/skins/default/sheet.png and b/data/skins/default/sheet.png differ diff --git a/data/skins/default/skin.xml b/data/skins/default/skin.xml index b391af51a..3316af1a3 100644 --- a/data/skins/default/skin.xml +++ b/data/skins/default/skin.xml @@ -267,7 +267,8 @@ - + + diff --git a/src/app/app_menus.cpp b/src/app/app_menus.cpp index cf77ab601..f7afd4545 100644 --- a/src/app/app_menus.cpp +++ b/src/app/app_menus.cpp @@ -88,6 +88,7 @@ void AppMenus::reload() m_celPopupMenu.reset(loadMenuById(handle, "cel_popup")); m_celMovementPopupMenu.reset(loadMenuById(handle, "cel_movement_popup")); m_frameTagPopupMenu.reset(loadMenuById(handle, "frame_tag_popup")); + m_palettePopupMenu.reset(loadMenuById(handle, "palette_popup")); //////////////////////////////////////// // Load keyboard shortcuts for commands diff --git a/src/app/app_menus.h b/src/app/app_menus.h index 1b27ff97d..4347cf89a 100644 --- a/src/app/app_menus.h +++ b/src/app/app_menus.h @@ -46,6 +46,7 @@ namespace app { Menu* getCelPopupMenu() { return m_celPopupMenu; } Menu* getCelMovementPopupMenu() { return m_celMovementPopupMenu; } Menu* getFrameTagPopupMenu() { return m_frameTagPopupMenu; } + Menu* getPalettePopupMenu() { return m_palettePopupMenu; } void applyShortcutToMenuitemsWithCommand(Command* command, const Params& params, Key* key); @@ -65,6 +66,7 @@ namespace app { base::UniquePtr m_celPopupMenu; base::UniquePtr m_celMovementPopupMenu; base::UniquePtr m_frameTagPopupMenu; + base::UniquePtr m_palettePopupMenu; ScopedConnection m_recentFilesConn; }; diff --git a/src/app/ui/color_bar.cpp b/src/app/ui/color_bar.cpp index c46bcbfae..a155a0f4e 100644 --- a/src/app/ui/color_bar.cpp +++ b/src/app/ui/color_bar.cpp @@ -12,6 +12,7 @@ #include "app/ui/color_bar.h" #include "app/app.h" +#include "app/app_menus.h" #include "app/cmd/remap_colors.h" #include "app/cmd/set_palette.h" #include "app/color.h" @@ -49,6 +50,7 @@ namespace app { enum class PalButton { EDIT, SORT, + PRESETS, OPTIONS, MAX }; @@ -162,6 +164,7 @@ ColorBar::ColorBar(int align) m_buttons.addItem(theme->get_part(PART_PAL_EDIT)); m_buttons.addItem(theme->get_part(PART_PAL_SORT)); + m_buttons.addItem(theme->get_part(PART_PAL_PRESETS)); m_buttons.addItem(theme->get_part(PART_PAL_OPTIONS)); onColorButtonChange(getFgColor()); @@ -277,7 +280,7 @@ void ColorBar::onPaletteButtonClick() break; } - case PalButton::OPTIONS: { + case PalButton::PRESETS: { if (!m_palettePopup.isVisible()) { gfx::Rect bounds = m_buttons.getItem(item)->getBounds(); @@ -291,6 +294,16 @@ void ColorBar::onPaletteButtonClick() break; } + case PalButton::OPTIONS: { + Menu* menu = AppMenus::instance()->getPalettePopupMenu(); + if (menu) { + gfx::Rect bounds = m_buttons.getItem(item)->getBounds(); + + menu->showPopup(gfx::Point(bounds.x, bounds.y+bounds.h)); + } + break; + } + } } diff --git a/src/app/ui/skin/skin_parts.h b/src/app/ui/skin/skin_parts.h index 06ebf0cd0..7b589a884 100644 --- a/src/app/ui/skin/skin_parts.h +++ b/src/app/ui/skin/skin_parts.h @@ -123,6 +123,7 @@ namespace app { PART_PAL_EDIT, PART_PAL_SORT, + PART_PAL_PRESETS, PART_PAL_OPTIONS, PART_TARGET_ONE, diff --git a/src/app/ui/skin/skin_theme.cpp b/src/app/ui/skin/skin_theme.cpp index 64f48c62c..add9c38bb 100644 --- a/src/app/ui/skin/skin_theme.cpp +++ b/src/app/ui/skin/skin_theme.cpp @@ -232,6 +232,7 @@ SkinTheme::SkinTheme() sheet_mapping["ani_last"] = PART_ANI_LAST; sheet_mapping["pal_edit"] = PART_PAL_EDIT; sheet_mapping["pal_sort"] = PART_PAL_SORT; + sheet_mapping["pal_presets"] = PART_PAL_PRESETS; sheet_mapping["pal_options"] = PART_PAL_OPTIONS; sheet_mapping["target_one"] = PART_TARGET_ONE; sheet_mapping["target_one_selected"] = PART_TARGET_ONE_SELECTED;