Commit Graph

680 Commits

Author SHA1 Message Date
David Capello
56ec9f113c Avoid crash if the theme package doesn't contain a sheet.png file 2018-06-25 14:05:57 -03:00
David Capello
511752fea7 New render engine to use bicubic interpolation when zoom < %100 (fix #1671)
This only works with Skia back-end.
2018-06-22 15:41:22 -03:00
David Capello
ddff5d559c Keep focus of layer name when right-click a layer > Properties (fix #1466) 2018-06-19 15:25:49 -03:00
David Capello
867b42d7ed Minor change in listbox.cpp to avoid gcc warnings 2018-06-06 16:36:59 -03:00
David Capello
7a35eb26a1 Add new pref="" attribute to <check> widgets to bind check boxes with bool preference options automatically
With this change we've moved the propagateToChildren/propagateToParent
flags from ui::KeyMessage to ui::Message so anykind of
message (e.g. user defined messages like kSavePreferencesMessage) can
use these flags (processed by ui::Widget::onProcessMessage()).
2018-06-06 16:35:02 -03:00
David Capello
0f51467768 Fix my common typo "completelly" instead of "completely" 2018-05-24 14:21:00 -03:00
David Capello
a845b098d9 Minor changes in ui/system.cpp 2018-05-24 13:12:01 -03:00
David Capello
40968891f2 Add option to disable native clipboard
This is related to #1100, as the Linux port is not well tested and may
fail, it's good to have an option to disable the native clipboard code
just in case.
2018-05-24 12:56:07 -03:00
David Capello
7b49bf295f Add extra check in ListBox::selectChild() 2018-03-16 12:17:12 -03:00
yuxshao
afdb6d22db Stop mnemonic processing from truncating multibyte characters (#1661) 2018-02-22 11:50:03 -03:00
David Capello
dee6ff6c7e Refactor: Use new base::paths type for list of filenames/extensions 2018-02-21 11:06:58 -03:00
David Capello
d247e28e17 Make the first button as the default one
So Enter key just accept the message box and Esc cancels it.
2018-02-07 17:28:37 -03:00
David Capello
d4244fed48 Add options to avoid showing dialogs saving files (#917) 2018-02-07 17:28:01 -03:00
David Capello
9520dee00a Avoid random crashes changing Color Mode with a TTF font in the theme
This is a weird combination of things:
1. StatusBar::onPixelFormatChanged() is being called in a non-UI thread
   because ChangePixelFormatCommand changes the color mode from a
   Job (background thread).
2. The UI layer is not prepared to work on multithreading, so all UI
   stuff should be used in the main UI thread (anyway, generally, the UI
   layer doesn't crash if it's used by multiple threads).
3. The harfbuzz library (used for TTF fonts) crashes if it is used by
   multiple threads, so that was the trigger of this crash.
2017-12-13 17:11:53 -03:00
David Capello
2ccbf44a55 Fix crosshair glitches on Editor when brush size popup is open 2017-12-05 13:31:34 -03:00
David Capello
848ce5972d win8: Add support to double tap with pen
Discussion:
https://community.aseprite.org/t/surface-pro-3-file-navigation/696
2017-11-23 17:03:24 -03:00
David Capello
f2a2510cea Use a obs::safe_list() for ui::Timers to avoid data races between threads 2017-11-03 10:51:45 -03:00
David Capello
73605749e6 Improve Graphics::dirty() to avoid flipping unnecessary she::Display areas 2017-11-03 09:36:12 -03:00
David Capello
f07359d71c Minor TODO item on Widget::setBoundsQuietly() for the future 2017-11-03 09:35:00 -03:00
David Capello
7becbc09b8 Update window title label size to show the entire text when it's changed 2017-10-26 21:59:19 -03:00
David Capello
d748cc7582 Add DEBUG_UI_THREADS to debug functions called from a non-main thread 2017-10-26 21:38:27 -03:00
David Capello
0ee5dbea7a Improve keyboard shortcuts list with resizable headers 2017-10-24 10:20:21 -03:00
David Capello
a9b183729f Translate all alerts to the en.ini file (#124) 2017-10-17 18:00:45 -03:00
David Capello
dede3610f3 Fix bug inserting the first char in a text entry
If a text field (ui::Entry) contains text with length=1 (e.g. the number
"8"), and we focus and press that same char ("8"), the caret will be in
the position 0 with text "8" (the caret should be in position 1). this
patch fix this behavior.
2017-10-03 14:45:53 -03:00
David Capello
c3bc7acb4d Fix crash using a theme with an undefined <style>
Related to: https://community.aseprite.org/t/498
2017-09-28 15:27:27 -03:00
David Capello
7dc7bf09e2 Windows: fix last gray background when the main window is closed 2017-09-28 12:41:19 -03:00
David Capello
c5c964bfcd Update Skia to chrome/m62 (our aseprite-m62 branch) 2017-09-19 13:41:28 -03:00
David Capello
7b7b12b593 Fix bug "Rewind on Stop" increments start frame randomly (fix #1569) 2017-09-08 11:20:55 -03:00
David Capello
f223d157fd Fix crash dragging the mouse in the toolbar
If we pressed the mouse button in the toolbar and start moving the mouse
like crazy just to create/destroy the toolbar popup multiple times, it
reached a situation where the Manager's mouse_widget was equal to a
deleted widget (and mouse_widgets_list contained that widget too),
producing a crash when we tried to access it.
2017-09-04 18:10:02 -03:00
David Capello
0154a73d36 Add native macOS menus (fix #135)
* This implements the Cmd+H and Cmd+M keys too:
  https://community.aseprite.org/t/279
* Also Cmd+, has more priority on macOS than Cmd+K to open the
  preferences (so macOS menu shows Cmd+,)
2017-09-01 13:32:23 -03:00
David Capello
a9c1b26db3 Fix reposition of windows when Screen/UI scaling is changed 2017-08-17 09:16:11 -03:00
David Capello
2bee243c39 Replace INT_MAX with std::numeric_limits<int>::max() 2017-08-15 11:25:23 -03:00
David Capello
432eedcb97 Support changing theme and UI scaling w/o restart (fix #471) 2017-08-15 10:39:06 -03:00
David Capello
14ba0ab411 Add addition/subtract/divide blending modes
Changes:
* Added SeparatorInView() to add separators inside a ListBox or ComboBox.
* Added BlendModeItem() to represent each item in the blending modes
  ComboBox.
* Now a ComboBox can contain any kind of widgets as children (not just
  ListItem). This is required to add separators in the blending modes
  ComboBox.

Feature request:
https://community.aseprite.org/t/additive-blending-feature/121
2017-07-24 15:25:13 -03:00
David Capello
147f36077b Timeline: Redraw only marching ants on timer tick (fix #1537) 2017-07-18 17:07:35 -03:00
David Capello
76df15d3c3 Add mnemonics to Extensions section in Preferences
Also fixed a problem using Alt+mnemonic on hidden buttons.
2017-06-13 12:04:40 -03:00
David Capello
a9e688989f Implement Add/Uninstall extension (#1403)
- Added libarchive to uncompress .zip extensions
- Moved ListItem painting code to styles because we needed a selected+disabled state.
2017-06-12 12:38:53 -03:00
David Capello
d5c47e2213 Make Entry fields bigger in ContextBar to avoid text scrolling 2017-05-31 16:21:34 -03:00
David Capello
f4fc77e050 Add search field on palette popup 2017-05-30 15:46:54 -03:00
David Capello
523b6a0a51 Show a DitheringSelector item in the combobox when it's closed
In this way we can show listbox/custom items in the combobox when we
select an item instead of showing text-only (the ui::Entry).
2017-05-23 13:41:11 -03:00
David Capello
bcdf598392 Add widget to choose dithering algorithm + matrix 2017-05-22 15:44:08 -03:00
David Capello
7bc593ac34 Change Entry::maxSize property from size_t to int 2017-04-19 17:51:03 -03:00
David Capello
73999c5415 Fix several issues with UI Scaling > 100% (fix #1456) 2017-04-15 08:13:20 -03:00
David Capello
2aeae2aaa7 Add messages for X1/X2 mouse buttons
Related to #598
2017-04-13 17:58:42 -03:00
David Capello
e5c15161e8 Add a new mouse cursor to move selection edges
With this change the app-specific cursors were removed from the ui library. Maybe it needs some clean-up for following versions.
2017-04-06 18:41:18 -03:00
David Capello
043489e532 Color frame tag lines (related to #920) 2017-03-27 12:32:39 -03:00
David Capello
37748c3783 Add automatic cel guides when Ctrl/Cmd is pressed 2017-03-23 00:57:21 -03:00
David Capello
60970b8eae Remove unused code from ui::Button
Removed IButtonIcon interface and Button::m_drawType field.
2017-03-17 16:13:47 -03:00
David Capello
bc01f16a4e Move painting code for checkbox & radio button to theme styles 2017-03-17 15:43:42 -03:00
David Capello
b6cf0f218c Add search field on Font Popup
Added support to set child visibility property to ListBox items.
2017-03-15 14:24:42 -03:00
David Capello
be3c9c1bcc Convert timeline widget to new styles
And remove the old skin::Style.
2017-03-13 18:13:38 -03:00
David Capello
ca2aae6349 Convert tabs painting code to new styles 2017-03-13 13:47:37 -03:00
David Capello
aabdb11779 Change scrollbar to new theme styles 2017-03-10 22:42:15 -03:00
David Capello
36ee5a39c8 Convert news items to new theme styles 2017-03-10 19:23:43 -03:00
David Capello
4b60806556 Fix mouse over state over recent file item & news item at the same time 2017-03-10 18:51:20 -03:00
David Capello
62db0c73a3 Fix clicking on a user data popup widgets
The textbox used in the tooltip was getting all clicks from the user. So on the user data popup we have to 1) don't set the title bar text, 2) if the title bar is not set the text box is hidden so will not eat all click messages.
2017-03-09 16:15:39 -03:00
David Capello
e2a94b094a Fix bug drawing box/grids bgcolor on tooltip windows 2017-03-09 15:12:39 -03:00
David Capello
81bcc07457 Fix canvas size button set item borders
We must not activate HAS_TEXT flag on widgets without text on XML files processing the mnemonic character.
2017-03-09 12:00:32 -03:00
David Capello
94dcfa7f35 Fix ColorButton font
- We've added a new "font" attribute in <style>s elements.
- Fonts aren't reset when we refresh the theme. This must be fixed in a future version when the theme can be completely reloaded.
2017-03-08 18:53:36 -03:00
David Capello
482f3eed0e Fix crashes editing composed unicode strings 2017-03-08 13:54:21 -03:00
David Capello
e4577665c3 Remove unused variable 2017-03-07 11:06:58 -03:00
David Capello
46974e3345 Fix compilation on Windows 2017-03-07 09:24:35 -03:00
David Capello
5d7b62e652 Fix ui::Entry to handle composed Unicode chars correctly 2017-02-21 18:05:23 -03:00
David Capello
f08757d9d2 Remove ui::Widget::textLength() member function 2017-02-21 10:48:25 -03:00
David Capello
24faae2ca5 Use HarfBuzz to render combining characters correctly 2017-02-20 17:14:41 -03:00
David Capello
921c5c8ad1 Move ui::Separator drawing code to new styles 2017-02-17 18:23:21 -03:00
David Capello
86f138a714 Move ui::Splitter painting code to new styles 2017-02-17 16:17:00 -03:00
David Capello
cc20f0a21e Remove Theme::paintDesktop() 2017-02-17 14:37:58 -03:00
David Capello
a62f12ad09 Move all code to draw windows to ui-lib w/new styles 2017-02-17 14:18:47 -03:00
David Capello
235011e169 Add "const" to several Theme and Widget function members 2017-02-15 16:44:50 -03:00
David Capello
7cb41729ab Convert label and view into new styles
In this way the WidgetLoader looks for new styles only.
2017-02-14 14:55:45 -03:00
David Capello
17151cddcd Move mnemonic key as a property of ui::Widget
In this was we can process the text string just one time to remove the
character preceded by '&' that will be finally acts as a mnemonic. This
simplifies the rendering and text measure code too.
2017-02-14 14:16:37 -03:00
David Capello
bb4faca1d1 New Style class in "ui" layer to paint widgets (only button at this moment)
This new ui::Style should finally replace the old app::skin::SkinStyle
class. At this moment both implementations are working to avoid an
huge refactor in just one commit.

- Added new ui::Style property in ui::Widget.
- Removed old code to set the button "bevel" (removed
  app::setup_bevels() functions).
- Removed setup_look() function and Left/RightButtonLooks.
- Removed check_button_new() function.
- Removed ui::Theme::paintButton/ComboBoxButton() functions.
2017-02-13 18:34:23 -03:00
David Capello
f7903a74de Add ui::Theme::drawSlices() member function 2017-02-09 17:01:43 -03:00
David Capello
7e6fc5a815 Move drawTextBox() function inside Theme class 2017-02-08 15:00:07 -03:00
David Capello
6c9c0066a0 Replace ui::CurrentTheme with ui::set/get_theme() 2017-02-08 14:50:58 -03:00
David Capello
9016d8635b Fix problems on ui::Entry() with TrueType fonts
Fixed several problems drawing and selecting text with TrueType fonts.
2017-02-07 19:05:47 -03:00
David Capello
47f3d540b7 Fix drawing UI text with TrueType fonts (related to #124) 2017-02-06 17:58:55 -03:00
David Capello
79f82cfbee Merge branch 'beta' into master
The next official release will be v1.2.
2017-01-30 16:02:21 -03:00
David Capello
d9ae6812d5 Update ui lib copyright 2017-01-09 12:50:28 -03:00
David Capello
8fa5d2dff1 Remove the "new_windows" var from ui::Manager impl
Fix regression bug introduced in
66e9cee3e6 where new opened windows
weren't painted.
2017-01-09 12:45:03 -03:00
David Capello
042b427f49 Merge branch 'master' into beta 2017-01-06 18:02:24 -03:00
David Capello
66e9cee3e6 Fix crash on UI tests
Generating paint messages without a she::System available.
2017-01-06 16:55:21 -03:00
David Capello
4ac63503c0 Minor change in ui/accelerator.cpp 2017-01-06 14:19:06 -03:00
David Capello
eb0f046dc7 Fix general UI delay/flickers redrawing elements
This is an old bug that makes the UI looks as "partially painted." We
have to process all logic messages first, and then generate paint
messages so we paint the latest UI state (instead of a intermediate
UI state).
2017-01-02 15:38:20 -03:00
David Capello
3d43b96517 Merge branch 'master' into beta 2016-12-29 11:24:20 -03:00
David Capello
ea71455f81 Fix ZoomEntry slider range
After f8874f4f7b, we fixed the zoom text
entry but we broke the zoom slider. We weren't able to select zoom
factors with the slider correctly (as the scale from 0 to 6400 was too
big). Now we revert the change and make the maximum text length in entry
bigger so the user can enter zoom levels like 6400 in the text entry and
use the zoom slider.
2016-12-29 10:22:39 -03:00
David Capello
0014673e41 Merge branch 'master' into beta 2016-12-22 10:46:37 -03:00
David Capello
809a90ba3b Fix crash using focus-movement keys in strange UI state
There were some crash reports in these days on the focus movement
code. It looks like we could arrive into an invalid/strange UI state
double-clicking palette buttons and showing menus two consecutive
times. After that, pressing Tab key would crash the focus-movement
logic.
2016-12-20 16:59:07 -03:00
David Capello
f8874f4f7b Fix zoom entry so we can insert numbers with 4 digits 2016-12-16 14:53:26 -03:00
David Capello
dc19c4b589 Merge branch 'master' into beta 2016-12-07 12:14:28 -03:00
David Capello
315584d819 Close toolbar popup when the document is closed 2016-12-07 11:12:19 -03:00
David Capello
fec4e27d8e Fix widget border in drawTextBox() 2016-12-06 21:29:14 -03:00
David Capello
c1e428544e Add minimal .md browser to show README/LICENSES files
Now we can see markdown files inside Aseprite. This is an initial
support (text only, separators, links only on headers and to external
URLs).

- Added a new docs/LICENSES.md file
- Removed old .txt licenses
2016-12-06 16:03:51 -03:00
David Capello
396f5fb78f Merge branch 'master' into beta 2016-12-02 19:13:08 -03:00
David Capello
42b8d04e46 Fix crash clicking on a non-ListItem widget inside a multiselect ListBox 2016-12-02 18:41:09 -03:00
David Capello
a46a087c51 Handle arrow keys/delete/backspace/etc. correctly on IntEntry (fix #1339) 2016-12-02 16:47:05 -03:00
David Capello
812e75f613 Replace "pin" icon with the regular "close" button
I was contacted several times by people that cannot close these pinned
popups window. The best solution is to do the same that a regular
window: show the close button.
2016-12-01 15:15:16 -03:00
David Capello
f57c298ad6 Merge branch 'master' into beta 2016-11-29 12:15:25 -03:00
David Capello
acdd9c3fed Don't add dead chars if the entry field is full 2016-11-29 11:08:29 -03:00
David Capello
60d89b10ed Fix crash introduced in 701170d85e 2016-11-24 19:59:34 -03:00
David Capello
74248cf33c Cmd+mnemonic on macOS now can press a button 2016-11-24 19:26:52 -03:00
David Capello
701170d85e Fix alt+mnemonic on macOS 2016-11-24 19:26:21 -03:00
David Capello
0d169fed75 Improve ui::drawTextBox() performance 2016-11-22 13:33:01 -03:00
David Capello
0ed0ad287c Fix TextBox drawing when we scroll it 2016-11-22 12:47:46 -03:00
David Capello
5828df1383 Add smooth scroll to ui::TextBox 2016-11-22 12:46:42 -03:00
David Capello
d5d71257fe Remove comment from TextBox::onSizeHint() 2016-11-22 12:46:23 -03:00
David Capello
461d311dff Fix several buffer overflows using base::string_printf() 2016-11-22 11:54:15 -03:00
David Capello
096b26fea6 Fix Space keyboard modifier to scroll the Editor 2016-11-22 10:51:03 -03:00
David Capello
a67589aa05 Fix Ctrl+A/C/V/X on RGB/HSV text fields 2016-11-22 10:34:00 -03:00
David Capello
b6076e6732 Fix "magnet enter" when we are in a ui::Entry
Pressing Enter on a ui::Entry will press "OK" buttons.
2016-11-21 12:28:42 -03:00
David Capello
d444f5b78e Minor change in Manager::processFocusMovementMessage 2016-11-21 10:37:54 -03:00
David Capello
3f1f07807b Add support to cycle RGB/HSV text fields with tab key (fix #1019)
Added a new flag in messages to know if they came from a filter or from
the original chain of recipients. To do this, we've added a new way to
process message filters: instead of pre-adding filters to the list of
message recipients, we process filters in the Manager::pumpQueue()
member function itself. (So the list of "recipients" is not modified.)
2016-11-19 00:57:58 -03:00
David Capello
f054aaa2cc Minor changes in ui::Slider 2016-11-19 00:23:54 -03:00
David Capello
d8bc90696e Rename Manager::isFocusMovementKey -> isFocusMovementMessage 2016-11-18 14:26:00 -03:00
David Capello
0703bf159c Add ui::Manager::processFocusMovementMessage() function 2016-11-18 14:22:14 -03:00
David Capello
6746049e60 Fix 1...6 keys to go to a specific frame on Windows
These keys where captured by the zoom command (gui Manager) first.
This regression was introduced in 00099390da
2016-11-18 13:47:02 -03:00
David Capello
02b9a953ef Avoid creating a System instance in she::instance()
This is necessary for tests that don't need a System but call the
instance() function anyway.
2016-11-18 12:13:10 -03:00
David Capello
5dc8f9c8a0 Move keyboard functions to she::System 2016-11-18 11:15:02 -03:00
David Capello
00099390da Fix several keyboard issues deadling with special characters/dead keys
This change adds support to write text with dead keys, and assign
keyboard shortcuts to special key combinations with Unicode characters
on macOS and Windows.

Fix #1083, close #796
2016-11-17 18:07:00 -03:00
David Capello
1b736aef85 Improve UX when opening file sequences
* Now we can select the specific files that are part of the sequence
* New checkbox do the same for all dropped files (fix #1284)
2016-11-15 18:11:47 -03:00
David Capello
7f17400178 Minor changes in ui::Alert to simplify its code 2016-11-15 18:06:27 -03:00
David Capello
64af97131d Support smooth scroll in ListBox 2016-11-15 17:31:56 -03:00
David Capello
2216db2d2c Send mouse events when a new window is displayed (fix #1221)
In this way if a new widget is displayed it will get the mouse-enter and
set-cursor messages correctly.
2016-11-14 17:23:09 -03:00
David Capello
88455ebc4b Fix compilation warnings when REPORT_EVENTS is defined 2016-11-14 17:21:37 -03:00
David Capello
4c2a283bd7 Double-click on a preset palette loads it 2016-11-14 15:55:21 -03:00
David Capello
b95326435c Remove an always-true if statement 2016-11-14 15:53:36 -03:00
David Capello
5c3f75c64b Merge branch 'master' into beta 2016-11-07 18:17:42 -03:00
David Capello
ce6c85996e Update laf library (base/path is gone, use base/fs) 2016-11-01 19:14:05 -03:00
David Capello
54e60f058f Merge branch 'master' into beta 2016-11-01 14:09:02 -03:00
David Capello
c2103df444 Move base module to laf library 2016-11-01 12:47:48 -03:00
David Capello
c60e0b915c Merge branch 'master' into beta 2016-10-27 13:00:57 -03:00
David Capello
c789e4a872 Don't crash if the user-defined theme is gone (fix #1283) 2016-10-27 11:03:27 -03:00
David Capello
3f052cfe2e Return nullptr instead of assert in Widget::font() 2016-10-17 10:49:37 -03:00
David Capello
3e9e49caf9 Allow to save specific layers/frames in Save Copy As (fix #1080) 2016-09-17 01:01:28 -03:00
David Capello
edf1cfd7b0 Add possibility to move the Timeline at the left/right side (fix #1169) 2016-09-15 11:07:36 -03:00
David Capello
5d0d609a3f Fix ui::Alert buttons center alignment
This bug was introduced in 4a6d6951e3
2016-09-14 15:47:27 -03:00
David Capello
6377b550e3 Replace base::Signal/Observable* with obs::signal/observable
We can use the obs library directly for signal/slots and observable
objects.
2016-09-13 15:02:00 -03:00
David Capello
311d27078f Check min/max widgets size in ui::Box layout algorithm 2016-09-09 20:21:33 -03:00
David Capello
4a6d6951e3 Add support to reduce all children when a ui::Grid is too small 2016-09-09 20:20:44 -03:00
David Capello
75894073d4 Make fg/bg color selector dialogs resizable (fix #1250) 2016-09-08 19:48:29 -03:00
David Capello
4119962ee6 Remove Widget::onDisable/onDeselect() member functions
Replaced with an argument in onEnable/onSelect().
2016-09-08 15:53:10 -03:00
David Capello
bebbd71d31 Add simple crosshair using native mouse cursors (fix #1236) 2016-08-31 13:24:03 -03:00
David Capello
f1f6d0745d Fix crash in UI tests 2016-08-30 18:20:28 -03:00
David Capello
f1c9e77e43 Add mouse cursor scale option 2016-08-30 17:27:19 -03:00
David Capello
162cee2870 Use custom native mouse cursor on Skia/OSX port 2016-08-30 16:12:11 -03:00
David Capello
507e0f152b Use custom native cursors on Skia/Win port 2016-08-30 13:50:45 -03:00
David Capello
5ecc356a41 Replace GPL license with the new EULA 2016-08-29 13:08:21 -03:00
David Capello
03be4aa23d Convert "bool" members in ui::Widget to flags 2016-08-29 12:23:23 -03:00
David Capello
f5c43267fc Add support to right-click with Ctrl+left click on OS X (fix #438)
This is only for Tabs and Entry widgets at the moment.
2016-06-29 18:52:09 -03:00
David Capello
a9cea5ab42 Update mouse cursor immediately after we change it to native mouse cursor 2016-06-14 09:36:50 -03:00
David Capello
8b242bdf06 Fix memory leak loading images for a ImageView widget 2016-05-11 12:58:27 -03:00
David Capello
60fd6072e9 ui library now depends on clip 2016-04-29 14:19:00 -03:00
David Capello
924c2ac86a Use clip library to copy/paste text
In this way we can remove all the code related to handle clipboard text
from she and ui libraries.
2016-04-28 23:26:20 -03:00
David Capello
7b4511a5df Unify she::InputDevice and ui::PointerType 2016-04-20 22:49:03 -03:00
David Capello
a58cbfbc1c Enable eraser support for Wacom tablets on Skia/Win back-end
Related to #610
2016-04-20 22:33:10 -03:00
David Capello
8028cf64db Merge branch 'unicode-text'
# Conflicts:
#	third_party/libpng
#	third_party/zlib
2016-04-04 10:26:57 -03:00
David Capello
0605166cc6 Move clock/tick from "she" to "base" library and switch to uint64_t type 2016-03-29 16:19:23 -03:00
David Capello
69a1161f69 Fix Entry bugs handling the text caret
Added more checks and improve performance in Entry::setCaretPos()
2016-03-14 12:39:45 -03:00
David Capello
29f6db6f35 Widget::textLength() returns the number of (Unicode) characters in the text field 2016-03-14 12:38:11 -03:00
David Capello
0abe01c5f4 Merge she::LockedSurface/NonDisposableSurface with she::Surface 2016-03-09 11:00:17 -03:00
David Capello
285deb603e Define _CRT_SECURE_NO_WARNINGS on sub-libraries that need it 2016-03-03 19:22:52 -03:00
David Capello
8c9d9eb84c Replace NULL with nullptr on files that don't include base/base.h 2016-03-03 19:20:57 -03:00
David Capello
4f6a7a7742 Include base/debug.h on files that use ASSERT or TRACE 2016-03-03 19:17:07 -03:00
David Capello
cb86fb4c8f Rename ui::winKeyName to ui::kWinKeyName 2016-03-02 10:31:39 -03:00
Gabriel Rauter
cb92b781eb Change Windows Modifier Name to Win for Windows and Super for Linux/BSD 2016-03-01 23:52:36 +01:00
Gabriel Rauter
e22332144a Add Windows Key as possible Modifier in Keyboard Shortcuts on Windows and Linux as a step to fix #796 2016-03-01 20:14:32 +01:00
David Capello
78da4a40a1 Avoid warning on Graphics::drawUIString() 2016-02-29 22:21:21 -03:00
David Capello
91b8df9d4d Fix mouse lag on Linux (fix #957)
As now we can generate several mouse events in
one generateMessagesFromSheEvents(), thanks to
1588e834c3, we can process
all mouse events from Allegro 4.
2016-02-29 22:21:07 -03:00
David Capello
5798c896e2 Don't generate a kSetCursorMessage when the mouse is outside the window
Should finally fix #948
2016-02-29 22:18:36 -03:00
David Capello
ca160d0647 Remove unnecessary iterations on splitter children in onSave/LoadLayout 2016-02-26 15:08:58 -03:00
David Capello
9521ed3079 Merge branch 'master' 2016-02-18 14:15:04 -03:00
David Capello
15e10ad9f6 Add touch magnify event to support OS X trackpad gesture 2016-02-18 13:58:45 -03:00
David Capello
802b8a0a10 Fix performance problem when we change color sliders with mouse movement 2016-02-17 18:32:34 -03:00
David Capello
1588e834c3 Fix artifacts when scrolling on widgets with sub-children (fix #963)
This bug was introduced in b0650f6afe
To fix this issue we've to remove kPaintMessages from the message queue
for widgets that were moved. Those pending paint messages aren't valid
anymore because the widget was invalidated again.
2016-02-15 15:54:54 -03:00
David Capello
e843e7a9ba Do not overlap the menubar with a menubox 2016-02-07 14:41:43 -03:00
David Capello
b0650f6afe Generalize View::setViewScroll() to blit valid/scrollable region automatically
With this change we are removing specific code to scroll the Editor widget.
Now if we use Editor::setEditorScroll() to scroll it should work as
View::setViewScroll(). In this way we remove the ugly "blitValidRegion"
parameter from setEditorScroll().

Changes:
* Removed Widget::scrollRegion() because each widget must control
  valid/invalid regions after a ui::move_region() in a very specific way
  (see View::setViewScroll() or Window::moveWindow)
* Invalidate the whole widget on Widget::setBoundsQuietly()
* Fixed problems blitting invalid regions/not yet updated/painted: using
  the new ui::Manager::m_invalidRegion.
* Added View::onSetViewScroll() and View::onScrollRegion()
* Added FileListView to avoid moving the thumbnail region when we scroll
2016-01-05 16:37:52 -03:00
David Capello
1260cf12c5 Minor comment changes in widget.h 2016-01-05 16:28:54 -03:00
David Capello
e64cc958ce Minor change/renames in Widget::flushRedraw() 2016-01-04 17:50:21 -03:00
David Capello
3bad2af2f3 Make Widget::offsetWidgets() function public 2016-01-04 17:49:40 -03:00
David Capello
eba8de0306 Fix slow scroll/selection movement with Alleg4 port (fix #929) 2016-01-04 12:15:23 -03:00
David Capello
910612101a Fix slow performance pressing Alt or Ctrl key on Editor in Alleg4/Win port 2015-12-30 17:30:20 -03:00
David Capello
0f28e216ba Fix Manager::pumpQueue() when DEBUG_PAINT_EVENTS is defined 2015-12-30 12:24:26 -03:00
David Capello
199a3db278 Don't scroll invalid areas in Widget::scrollRegion() 2015-12-28 13:37:01 -03:00
David Capello
5074ef2d68 Handle several UI mouse movement events at once if they are in the she layer queue 2015-12-28 13:02:45 -03:00
David Capello
65dd457847 Reduce size hint for ui::ComboBox 2015-12-22 17:14:26 -03:00
David Capello
70127f19e1 Fix closing the whole user data popup when we're selecting the user data color 2015-12-17 16:34:57 -03:00
David Capello
6ec07d5e10 Fix comment for ui::PopupWindow::setHotRegion() member function 2015-12-17 15:46:13 -03:00
David Capello
1f513a1ed5 Restore selected ButtonSet item when we offer the mouse capture
When a ButtonSet triggers an onClick() when a mouse up message is received
(ButtonSet::m_multipleSelection == true), in case the mouse capture is
offered to other ButtonSet, we've to restore the selected item when we
capture the mouse, because we've never generated the onClick() event
in the first place.
2015-12-16 16:55:49 -03:00
David Capello
cff6d1cc65 Rename LinkLabel::getUrl() -> url() 2015-12-15 17:07:29 -03:00
David Capello
a380c9a877 Add possibility to create an empty LinkLabel 2015-12-15 17:07:13 -03:00
David Capello
e422acff1f Fix PopupWindow size hint when it doesn't have a title 2015-12-15 17:06:54 -03:00
David Capello
d8417df35f Add possibility to create empty ui::ListItems 2015-12-15 17:06:05 -03:00
David Capello
e78e9eeb2c Add PopupWindow::setClick/EnterBehavior() member functions 2015-12-11 12:48:11 -03:00
David Capello
50a01879ac Add possibility to create popup windows and tip windows from XML widgets 2015-12-10 16:51:48 -03:00
David Capello
455153d4b9 Change ui::TipWindow public API
Arrow align and target bounds are given as parameters of the new
TipWindow::pointAt() member function. Now TipWindow() contains a
default ctor.
2015-12-10 16:50:16 -03:00
David Capello
d02efbf315 Fix TipWindow background color 2015-12-10 16:46:01 -03:00
David Capello
3066e1b301 Minor format change in ui/textbox.h 2015-12-10 16:44:48 -03:00
David Capello
d467d71fa5 Rename PopupWindow enums 2015-12-05 15:56:32 -03:00
David Capello
e944ce0052 Move Bind, Connection, Signal, Slot, etc. to base namespace 2015-12-04 15:17:42 -03:00