Make ScreenScale option configurable through UI

This commit is contained in:
David Capello 2014-02-08 00:19:20 -03:00
parent cff08af639
commit e082cd96f1
3 changed files with 30 additions and 14 deletions

View File

@ -1,19 +1,25 @@
<!-- ASEPRITE -->
<!-- Copyright (C) 2001-2013 by David Capello -->
<!-- Aseprite -->
<!-- Copyright (C) 2001-2014 by David Capello -->
<gui>
<window text="Options" id="options">
<box vertical="true">
<box horizontal="true">
<box vertical="true">
<!-- Screen -->
<separator text="Screen:" horizontal="true" />
<grid columns="2">
<label text="Screen Scale:" />
<combobox id="screen_scale" expansive="true" />
</grid>
<!-- Editor -->
<separator text="Editor:" horizontal="true" />
<check text="Smooth auto-scroll" id="smooth" />
<check text="Show timeline automatically" id="autotimeline" tooltip="Show the timeline automatically&#10;when a new frame or layer is added." />
<check text="Show scroll-bars in sprite editor" id="show_scrollbars" tooltip="Show scroll-bars in all sprite editors." />
<check text="2 Click Movement" id="move_click2" disabled="true" />
<check text="2 Click Drawing" id="draw_click2" disabled="true" />
<grid columns="2">
<label text="Cursor:" />
<box id="cursor_color_box" /><!-- custom widget -->

View File

@ -27,6 +27,7 @@
#include "app/ini_file.h"
#include "app/load_widget.h"
#include "app/modules/editors.h"
#include "app/modules/gui.h"
#include "app/settings/document_settings.h"
#include "app/settings/settings.h"
#include "app/ui/color_button.h"
@ -71,8 +72,6 @@ void OptionsCommand::onExecute(Context* context)
Widget* check_smooth = app::find_widget<Widget>(window, "smooth");
Widget* check_autotimeline = app::find_widget<Widget>(window, "autotimeline");
Widget* show_scrollbars = app::find_widget<Widget>(window, "show_scrollbars");
Widget* move_click2 = app::find_widget<Widget>(window, "move_click2");
Widget* draw_click2 = app::find_widget<Widget>(window, "draw_click2");
Widget* cursor_color_box = app::find_widget<Widget>(window, "cursor_color_box");
Widget* grid_color_box = app::find_widget<Widget>(window, "grid_color_box");
Widget* pixel_grid_color_box = app::find_widget<Widget>(window, "pixel_grid_color_box");
@ -83,6 +82,7 @@ void OptionsCommand::onExecute(Context* context)
Button* checked_bg_reset = app::find_widget<Button>(window, "checked_bg_reset");
Widget* undo_size_limit = app::find_widget<Widget>(window, "undo_size_limit");
Widget* undo_goto_modified = app::find_widget<Widget>(window, "undo_goto_modified");
ComboBox* screen_scale = app::find_widget<ComboBox>(window, "screen_scale");
Widget* button_ok = app::find_widget<Widget>(window, "button_ok");
// Cursor color
@ -105,12 +105,6 @@ void OptionsCommand::onExecute(Context* context)
pixel_grid_color_box->addChild(pixel_grid_color);
// Others
if (get_config_bool("Options", "MoveClick2", false))
move_click2->setSelected(true);
if (get_config_bool("Options", "DrawClick2", false))
draw_click2->setSelected(true);
if (get_config_bool("Options", "MoveSmooth", true))
check_smooth->setSelected(true);
@ -120,6 +114,13 @@ void OptionsCommand::onExecute(Context* context)
if (settings->getShowSpriteEditorScrollbars())
show_scrollbars->setSelected(true);
// Checked background size
screen_scale->addItem("1:1");
screen_scale->addItem("2:1");
screen_scale->addItem("3:1");
screen_scale->addItem("4:1");
screen_scale->setSelectedItemIndex(get_screen_scaling()-1);
// Checked background size
m_checked_bg->addItem("16x16");
m_checked_bg->addItem("8x8");
@ -160,8 +161,6 @@ void OptionsCommand::onExecute(Context* context)
set_config_bool("Options", "MoveSmooth", check_smooth->isSelected());
set_config_bool("Options", "AutoShowTimeline", check_autotimeline->isSelected());
set_config_bool("Options", "MoveClick2", move_click2->isSelected());
set_config_bool("Options", "DrawClick2", draw_click2->isSelected());
settings->setShowSpriteEditorScrollbars(show_scrollbars->isSelected());
@ -175,6 +174,15 @@ void OptionsCommand::onExecute(Context* context)
set_config_int("Options", "UndoSizeLimit", undo_size_limit_value);
set_config_bool("Options", "UndoGotoModified", undo_goto_modified->isSelected());
int new_screen_scaling = screen_scale->getSelectedItemIndex()+1;
if (new_screen_scaling != get_screen_scaling()) {
set_screen_scaling(new_screen_scaling);
ui::Alert::show(PACKAGE
"<<You must restart the program to see your changes to 'Screen Scale' setting."
"||&OK");
}
// Save configuration
flush_config_file();
}

View File

@ -216,6 +216,8 @@ int init_module_gui()
void exit_module_gui()
{
save_gui_config();
// destroy shortcuts
ASSERT(shortcuts != NULL);
for (std::vector<Shortcut*>::iterator