Commit Graph

781 Commits

Author SHA1 Message Date
David Capello
d72a7a4dee Fix compilations errors on gcc 2014-02-24 08:30:43 -03:00
David Capello
3b23184c15 Fix compilation error in ui/clipboard_none.h 2014-02-24 08:23:04 -03:00
David Capello
3cbf3e122f Now you can press a mouse button in a ComboBoxEntry and drag the mouse to the ComboBoxListBox (issue 339) 2014-02-08 20:09:42 -03:00
David Capello
7251f4b70a Now you can press a mouse button in a IntEntry and drag the mouse to the slider (issue 339) 2014-02-08 19:39:36 -03:00
David Capello
bb32f1fbf2 slider.cpp: Remove commented code 2014-02-08 19:26:13 -03:00
David Capello
7eb41c73e9 IntEntry: select all text when the value is changed with the slider 2014-02-08 18:58:28 -03:00
David Capello
721734d26c Don't scroll Entry text if it isn't needed 2014-02-08 18:46:27 -03:00
David Capello
f954556683 Fix crash in Entry::getCaretFromMouse() 2014-02-08 18:31:15 -03:00
David Capello
51f70a170a Move code to handle Windows clipboard (text) to ui/clipboard_win.h 2014-02-08 00:41:16 -03:00
David Capello
9b2f5399e9 Add ui::Graphics::fillRegion() 2014-02-06 20:01:32 -03:00
David Capello
9050861d78 Add ui::Widget::getGraphics() and GraphicsPtr 2014-02-06 20:00:59 -03:00
David Capello
936b741f90 Stop propagation of keyboard messages if a child use it
This fix a new bug with the new EditorView's scroll-bars. As 1,2,3,4,5,6
keys change the zoom, they will change the viewport size, and scroll-bars
will be removed/added. We cannot continue iterating the View::m_children
collection after m_children is modified (scroll-bars are removed/added).
2014-02-03 00:22:24 -03:00
David Capello
0a01828ffe Don't eat all keystrokes on ui::TextBox::onProcessMessage() 2014-02-02 20:13:52 -03:00
David Capello
e671508d85 Change infinite scroll implementation
Remove necessity of jmouse_x(1) and jmouse_y(1) calls.

- Renamed jmouse_control_infinite_scroll() -> ui::control_infinite_scroll()
- Renamed jmouse_set_position() -> ui::set_mouse_position()
- Added ui::get_delta_outside_box()
2014-02-02 18:46:19 -03:00
David Capello
78fbf07fc7 Fix scroll bar thumb size calculation 2014-01-28 23:46:04 -03:00
David Capello
eee1719109 Implemented issue 260: Scroll-bars for sprite editor 2014-01-26 13:28:11 -03:00
David Capello
f8e8657093 Move kPaintMessage code to onPaint() event for some widgets
The affected widgets are: ColorBar::ScrollableView, ColorButton, and
StatusBar.

* Added Graphics::drawLine()
* Moved rectgrid and draw_color to modules/gfx.cpp
2013-12-29 21:12:23 -03:00
David Capello
20fb1317a3 Fix bug in Graphics::drawStringAlgorithm() painting invalid background color 2013-12-09 22:58:07 -03:00
David Capello
40fd251c39 Add support for vertical text alignment in Graphics::drawStringAlgorithm() 2013-12-09 22:57:43 -03:00
David Capello
61d5693727 Merge branch 'dev' of git@github.com:dacap/aseprite.git into dev 2013-12-01 22:09:11 -03:00
Joel Madigan
838382791e Tweaked IntEntry behavior
Changed behavior of IntEntry to stop it from continously selecting all
text as long as the mouse is over the input box.  It appears that
something continues to send kMouseEnterMessage messages while use is
typing, even if the mouse is still.  This caused the IntEntry select-all
multiple times and as the user typed would replace what they had already
written.

Also force value to be set within min >= value >= max when focus is lost.
This will get rid of bad values from the entry, such as 10q goes to 10,
40000 goes to 255, etc.
2013-11-30 18:36:22 -05:00
David Capello
3a2ef4644e Move Manager::getDefault() to .h so it can be inlined 2013-11-30 20:02:45 -03:00
David Capello
ad0b28bd63 Change Window() ctor to avoid ambiguity (DesktopWindow, WithoutTitleBar, or WithTitleBar)
In this way we know at the moment of the creation of the window if it
will need the close button.

Issue #280.
https://github.com/aseprite/aseprite/pull/6
2013-11-23 17:47:57 -03:00
David Capello
7dc8e548be Fix issue #280 - Close button doesn't appear in some windows
Thanks to @DocHoncho for the help.
See https://github.com/aseprite/aseprite/pull/6
2013-11-23 17:25:21 -03:00
David Capello
e6450877bb Minor change: Make Splitter::getPosition() inlined 2013-11-10 18:02:20 -03:00
David Capello
dbf4d0d490 Replace JRect/jrect struct with gfx::Rect
- Replaced Widget::rc -> Widget::m_bounds private member.
- Added Widget::offsetWidgets() method.
- Removed View::displaceWidgets().
2013-10-26 12:50:55 -03:00
David Capello
5b252c30f5 Add support for Unicode file names on Windows
- Fixed issue #46: open .png files with Unicode chars
- Fixed issue #150: ability to uncompress program in folders w/Unicode chars
- Added base::utf8_iterator
- Added base::FileHandle
- Added base::get_app_path()
- Modified ui::KeyMessage::ascii() -> unicodeChar()
- Removed JI_NOTEXT flag
- Added app::XmlDocumentRef class and app::open_xml() function
- Added support for Unicode text exchange with Win32 clipboard
2013-10-14 19:58:11 -03:00
David Capello
d91b05667b Fix compilation errors detected with gcc 2013-08-20 00:51:37 -03:00
David Capello
cde54f3682 Change BSD license to MIT in sublibraries and fix headers 2013-08-08 21:01:20 -03:00
David Capello
c88f9b172b Refactor: Move app files to src/app subdirectory inside app namespace
- Add HAVE_CONFIG_H wrapper to #include "config.h"
- Removed widgets namespace (it's in app now)
- Move some functions from src/file/file.h to src/base/cfile.h
- Move Vector2d to base library
- Rename MenuItem2 to AppMenuItem
2013-08-05 21:20:19 -03:00
David Capello
1614786408 Convert ui::Message union to a class hierarchy
+ Add ui::KeyScancode enum and ui::KeyModifiers flags.
+ Add ui::MouseButtons enum.
2013-07-28 21:17:07 -03:00
David Capello
6022278260 Remove (unused) MessageSetPos struct 2013-06-02 19:19:01 -03:00
David Capello
e90f86727b Remove jwidget_get_rect() and jwidget_get_child_rect() functions
+ Added Widget::getClientChildrenBounds()
+ Replaced all member functions in Theme::draw_x() to Theme::paintX()
+ Move code to draw tabs from Tabs::onProcessMessage() to Tabs::onPaint().
2013-05-20 20:40:18 -03:00
David Capello
01dfe4d52e Replace kResizeMessage message with ResizeEvent and Widget::onResize()
- Remove jwidget_set_rect() function.
2013-05-11 17:56:27 -03:00
David Capello
3dbf6518f9 Replace all JM_ macros with ui::MessageType enum and add ui::RegisterMessage class to register new UI messages 2013-04-04 21:53:29 -03:00
David Capello
6e62bcb82f Add ui::WidgetType enum to replace JI_WIDGET macros 2013-04-03 22:07:24 -03:00
David Capello
fd6e4ccc21 Add support for transparent background color for ui::Slider to draw ui::IntEntry popup window without background 2013-04-03 21:17:12 -03:00
David Capello
b45dcf7d0d Use ui::ListItem in ui::ComboBox widget 2013-04-03 20:31:02 -03:00
David Capello
1d76e0d545 When a widget is removed (through Widget::removeChild) we've to remove it from its ui::Manager
A widget without parent, cannot be part of the Manager (e.g. cannot be
the capture widget, or focused, or the widget with mouse).
2013-04-03 19:54:40 -03:00
David Capello
dcd8627406 Separate ui::ListBox::Item into ui::ListItem class 2013-04-02 21:34:30 -03:00
David Capello
1bf84bac41 Fix IntEntry's popup if it's beyond the screen border 2013-03-30 20:53:50 -03:00
David Capello
9076ee13ea Don't close IntEntry's popup in case of FOCUSLEAVE message 2013-03-30 20:50:43 -03:00
David Capello
cbb5809c10 Bigger hot region for IntEntry's popup window 2013-03-30 20:50:24 -03:00
David Capello
cb0cdb3197 Rename old _ji_* functions 2013-03-30 13:38:24 -03:00
David Capello
a437a954f2 Sort #includes in ui/entry.cpp file 2013-03-30 13:11:49 -03:00
David Capello
4adc9f8489 Add ui::IntEntry widget 2013-03-30 13:11:35 -03:00
David Capello
fe6209ed52 Fix bug in ui::Entry::m_caret, after changing the widget's text we've to adjust the caret
This is to avoid "out of range" situations, where the caret is outdated
and doesn't correspond to the new widget's text length.
2013-03-30 00:35:25 -03:00
David Capello
1d6be62ae7 Fix ui::Entry::onEntryChange: must be a virtual member function 2013-03-29 23:40:12 -03:00
David Capello
c2664b6aac ADd Entry::set/getSuffix() property 2013-03-29 16:20:32 -03:00
David Capello
c5a0acf7c6 Add ComboBox::onChange() member function 2013-03-29 16:16:24 -03:00
David Capello
da946ed90c Add Widget::getFirstChild() member function 2013-03-27 21:44:21 -03:00
David Capello
9b8e87da10 Update copyright year to 2013 2013-01-27 12:13:13 -03:00
David Capello
544a63cc28 Add "play" button in MiniEditorWindow (UI only)
At this moment the button isn't functional because the current frame
position is stored in the sprite (instead of the Editor). In this case,
when the "play" button is pressed, the mini-editor should show other
frames instead of the current one (should play the whole animation).
2013-01-20 21:58:16 -03:00
David Capello
ed90055bf7 Replace modules/editors.cpp with widgets::Workspace class
Now we have one editor for each Document we want to edit. Before we were
creating one editor and switching the document on it, but now we have
several Editors (one for each opened Document). This simplifies the
Document implementation, because it doesn't need to know temporal
Editor information (like "preferred editor settings").

- Removed all code from modules/editors.cpp (legacy from C code).
- Removed PreferredEditorSettings class and
  Document::getPreferredEditorSettings().
- Added Workspace/WorkspaceView classes.
- Added DocumentView (a DocumentObserver).
- Added MiniEditorWindow class.
- Removed SelectFileCommand & CloseEditorCommand.
- Added TabView interface instead of using a raw void* in
  Tabs/TabsDelegate classes.
- Modified editors_draw_sprite() calls to Document::notifySpritePixelsModified
  notifications.
- The "current_editor" global variable wasn't removed because it's
  used in several places yet, but it will be removed in the near future.
  (Also this variable now can be NULL when we don't have an opened
  document.)
2013-01-20 18:40:37 -03:00
David Capello
3ae4889526 Remove deprecated messages 2013-01-16 21:54:47 -03:00
David Capello
95a0c6d0f4 Merge branch 'dev' of git@github.com:dacap/aseprite.git into dev
Conflicts:
	src/ui/popup_window.cpp
	src/ui/tooltips.cpp
	src/ui/tooltips.h
	src/ui/window.cpp
2013-01-13 22:45:25 -03:00
David Capello
eacd0c7642 Replace ui::jregion with gfx::Region class
This is an old TODO item, and it's the first step to finally
get rid of JRect and struct jrect.
2013-01-13 22:39:44 -03:00
David Capello
c5cf588370 Rename some member_functions to memberFunctions 2013-01-11 12:43:25 -03:00
David Capello
a517deee0d Add ui::Color and ThemeColor, move Color to app::Color
Now colors are customizable from skin.xml file.
2013-01-06 14:45:43 -03:00
David Capello
ef4934bef2 Remove JM_REQSIZE message 2012-09-26 18:34:52 -03:00
David Capello
44b8822e38 Remove deprecated MessageSignal message 2012-09-26 17:55:41 -03:00
David Capello
0496f38ed3 Fix a typo in all files distributed under BSD-like and Allegro licenses
Thanks to Tobias Hansen.
2012-09-23 23:24:43 -03:00
David Capello
23660eb0d1 Fix issue #164: Palette area visible in Advanced Mode.
Instead of switching ColorBar visibility, we've to switch the
Splitter position between the ColorBar and sprite editors.
2012-08-24 18:54:47 -03:00
David Capello
fb5f086f0f Add "ui::dirty_display_flag" flag to avoid flipping to the screen continuously.
This is a temporal fix to save more CPU. It will be refactored for next
versions.
2012-08-23 22:25:56 -03:00
David Capello
c6fe95231d Convert the mouse cursor into an ui::Overlay (now it support alpha channel).
- Added Cursor class and CursorType enum.
2012-08-10 23:14:54 -03:00
David Capello
d7862744b4 Merge branch 'master' of git@github.com:dacap/aseprite.git 2012-08-06 01:20:12 -03:00
David Capello
237bec80f2 Add overlays (ui::Overlay and ui::OverlayManager classes). 2012-08-06 01:17:29 -03:00
David Capello
89cb9d098c Move some base UI logic to handle the main display from modules/gui.cpp to she library. 2012-08-05 21:16:16 -03:00
David Capello
2ffe54584a Fix gcc problem using std::stream with forward-declarations only without including <sstream>. 2012-07-18 08:59:31 -03:00
David Capello
525851e6a1 The color bar is now resizable.
- Added Splitter::Type so it can be by pixel or by percentage.
- Added Widget::load/saveLayout functions and Widget::onLoad/SaveLayout
  events.
- Added LayoutIO interface so we can delegate the serialization of the
  layout.
2012-07-18 01:10:43 -03:00
David Capello
25fc113c37 Fix issue #142: Crash keeping a key pressed while we're en menu logic.
We cannot send another Menu::closeAll() request if we are processing
other open/close popup requests. This also fix a crash if we keep the left
or right key pressed to navigate through menus.
2012-07-17 23:18:43 -03:00
David Capello
8764f018c7 Minor change in menu.cpp. 2012-07-17 23:01:05 -03:00
David Capello
5da37e237b Fix a bug introduced in aseprite 0.9.2, commit 8a1295c025.
Widget::getMnemonicChar() can return 0, and we should pre-check this
value before we compare the mnemonic with the pressed ascii char.
2012-07-17 23:00:55 -03:00
David Capello
14f24b1181 Refactor: replace JList with std::vector<> or std::list<>. 2012-07-17 21:42:02 -03:00
David Capello
8dd42cc653 Fix problems with printf-like functions using %d with size_t fields (instead of %lu). 2012-07-15 02:02:29 -03:00
David Capello
8e7b16c3b1 Add MessageLoop to avoid 100% CPU in foreground windows. 2012-07-09 18:31:06 -03:00
David Capello
5529c62c9f Use a std::list instead of a std::vector for timers list. 2012-07-09 18:30:13 -03:00
David Capello
846fbff4a7 Fix compilation errors in GCC. 2012-07-09 17:36:45 -03:00
David Capello
91bf74350e Rename ui::Frame to ui::Window. 2012-07-08 23:24:42 -03:00
David Capello
ebb8d0c5bd Replace deprecated "Monitor" struct from gui module with ui::Timers.
- Added ThumbnailGenerator class to avoid mixing the thumbnail generation
  code with FileList widget.
- Added IFileOpProgress for fop_operate() so we can update the job progress
  when the "file operation" progress changes.
2012-07-06 01:06:00 -03:00
David Capello
55aca8567c Move src/gui/ to src/ui/ 2012-06-17 22:49:58 -03:00