Commit Graph

361 Commits

Author SHA1 Message Date
Markus Gans dc3c5d19e4 Some code improvements 2017-09-11 03:06:02 +02:00
Markus Gans 1cd1e521c3 Wrong UTF-8 string length fixed when attaching to FString 2017-09-09 22:03:17 +02:00
Markus Gans f941da79e7 Type definition exported into a separate header file 2017-09-07 23:35:24 +02:00
Markus Gans 5a077e73c4 Fixes wrong maximum line width in FListView 2017-09-03 18:32:43 +02:00
Markus Gans 5f7737bf64 Improve code readability through spaces between the operands and the operators 2017-08-27 09:50:30 +02:00
Markus Gans 3f8b9d774b Rename fapp.{cpp,h} to fapplication.{cpp,h} 2017-08-24 00:47:35 +02:00
Markus Gans 37e4f7e222 Screen characters got a union structure for a faster attribute compare operation 2017-08-20 17:30:30 +02:00
Markus Gans 48e737818c Some code changes for GCC 7 2017-08-11 10:50:39 +02:00
Markus Gans 55070bfc39 Advanced streaming functionality for FTermBuffer and FVTerm::print() 2017-08-06 17:02:19 +02:00
Markus Gans ba17c529ff New methods to set and get FListViewItem and FListView text for a column 2017-08-01 00:56:12 +02:00
Markus Gans 0240d782ca Possibility for a FListView column to set the alignment 2017-07-28 22:18:42 +02:00
Markus Gans 30515db9ec Check an object with isInstanceOf(...) whether it is an instance of a specified class 2017-07-23 01:19:59 +02:00
Markus Gans d8c41b879d New Widget class FListView to allow a multi-column data view 2017-07-18 23:50:51 +02:00
Markus Gans a998706e5e New class FTermBuffer to buffer terminal outputs 2017-07-12 01:16:57 +02:00
Markus Gans b36fc80f51 Use more static const variables where it makes sense 2017-07-03 16:56:32 +02:00
Markus Gans b0b5282c9a FString::rtrim() and FString::left() now return an FString object with the correct character length 2017-06-26 23:35:34 +02:00
Markus Gans ddb1c884e4 Move the dragScroll enumeration into the fc namespace 2017-06-18 19:36:22 +02:00
Markus Gans b1d323ef76 New method FObject::isWidget() 2017-06-11 17:47:50 +02:00
Markus Gans 526e193fb7 The focus and active flag is set centrally in FWidget 2017-06-05 16:11:25 +02:00
Markus Gans b4b95f7b45 Recalculate the horizontal FListBox scroll bar size on lazy conversion 2017-05-20 22:43:55 +02:00
Markus Gans baea344b3c FListBox: Import of data from a container via "lazy conversion" during item print 2017-05-19 22:47:13 +02:00
Markus Gans b3505af040 FListBox: Import of data from a container via "lazy conversion" during item print 2017-05-19 22:16:50 +02:00
Markus Gans ca7ba6ae7e Data import from a standard container in FListBox 2017-04-23 18:54:46 +02:00
Markus Gans 90fa4b0391 FString allocates no new memory if the size sufficient 2017-04-17 22:50:25 +02:00
Markus Gans a7a11083d5 FString allocates no new memory if the size sufficient 2017-04-17 22:49:42 +02:00
Markus Gans 0c3668573d Speed up FString::setNumber() by using a decimal string lookup table 2017-04-17 01:03:14 +02:00
Markus Gans 09d6c2879d Fix unsigned integer underflow in FString::_insert() 2017-04-15 19:32:43 +02:00
Markus Gans cb2e2e2045 Open/NetBSD (wscons): Alt key generate Esc prefix 2017-04-14 23:55:44 +02:00
Markus Gans 2ec425480a Enable xterm "metaSendsEscape" switch 2017-04-11 00:30:27 +02:00
Markus Gans c6dba0b4ac Rename preprocessor macro names with leading underscore 2017-04-09 20:08:53 +02:00
Markus Gans 7ead64f2b8 Looking in /etc/ttys for the type of terminal 2017-04-08 02:40:22 +02:00
Markus Gans 0a581cb58b Change cursor style on a FreeBSD console 2017-04-06 01:31:21 +02:00
Markus Gans 7f134ccada New Method setInsertCursorStyle() 2017-04-05 22:25:20 +02:00
Markus Gans 6b5f033b7b Replace non-printable chars for Tera Term and Cygwin 2017-04-05 00:30:52 +02:00
Markus Gans 8de22dc903 Avoid non-printable ASCII codes < 0x1c on FreeBSD 2017-04-02 21:32:48 +02:00
Markus Gans 09eb75c14b Remap meta key to left alt on FreeBSD console 2017-04-02 13:31:00 +02:00
Markus Gans 0e5b1dfebd Remap meta key to left alt on FreeBSD console 2017-04-02 13:30:23 +02:00
Markus Gans bcfa7fb731 termcap "me" does not reset the alternate character set 2017-03-30 00:46:52 +02:00
Markus Gans d5b2c9dc99 Improved alternate character set for FreeBSD console 2017-03-28 08:50:37 +02:00
Markus Gans 48b2e6a816 compiles now under FreeBSD 2017-03-26 20:40:04 +02:00
Markus Gans ef5ca7d5f8 Add the "mouse" example 2017-03-19 17:18:07 +01:00
Markus Gans 05c61f1901 More constant character pointers 2017-03-17 22:59:06 +01:00
Markus Gans 06ec274d00 Corrects directly the input cursor position on window moving 2017-03-12 20:29:10 +01:00
Markus Gans 7ab1a6b353 Fixed bug in FString copy constructor 2017-03-12 01:26:08 +01:00
Markus Gans 4107227119 on-demand scroll bars for FButtonGroup 2017-03-12 00:29:56 +01:00
Markus Gans 56df867ef7 Improve input cursor positioning in FScrollView 2017-03-08 23:48:30 +01:00
Markus Gans bd06df8987 Corrected swapped top and left offset variables in the class FVTerm 2017-02-25 15:18:29 +01:00
Markus Gans 34961037f8 Fixes incorrect return value of FString::toString() 2017-02-24 23:31:56 +01:00
Markus Gans 7c11ba1707 FListBox saves data pointer in FListBoxItems 2017-02-24 00:30:07 +01:00
Markus Gans b35d225ff5 FButtonGroup now inherits from FScrollView 2017-02-20 00:00:53 +01:00
Markus Gans 3f8ed6e78e Allows a window to have more than one FScrollView widget 2017-02-18 23:37:10 +01:00
Markus Gans 09021d9c0a Check of the termcap capability U8 2017-02-07 17:15:01 +01:00
Markus Gans 36bba82e9f Allow to change the focus out from FScrollView 2017-01-28 22:03:15 +01:00
Markus Gans 59189160fd FScrollView now scrolls automatically to the focused widget 2017-01-26 00:31:07 +01:00
Markus Gans 51b1d18a84 FScrollView now allows client widget 2017-01-22 23:04:40 +01:00
Markus Gans 5cb7b77f4e Virtual window gets a preprocessing handler 2017-01-15 19:48:27 +01:00
Markus Gans 49e36e5203 Add scrollTo and scrollBy methods to FScrollView 2017-01-07 22:09:09 +01:00
Markus Gans 99ff28cbbe Add FScrollView arrow keys support 2017-01-03 19:02:04 +01:00
Markus Gans 87ca58b898 FScrollView now has on-demand scroll bars 2017-01-03 05:19:44 +01:00
Markus Gans b2e4a59f54 FScrollView provides a scrollable viewport to change area 2017-01-02 08:07:46 +01:00
Markus Gans 628bec0b29 Reduce public methods in FVTerm 2016-12-28 16:29:49 +01:00
Markus Gans 2c8d58f803 Avoid non-working tab-moves on Linux terminals with PC or VT100 encoding 2016-12-27 23:03:32 +01:00
Markus Gans 386e91563a Add the ability to stream text into a widget's virtual window with print() or *this 2016-12-26 01:15:32 +01:00
Markus Gans f67537fba4 Correct gpm detection in configure script 2016-12-22 12:27:11 +01:00
Markus Gans c4a8886da2 VTerm marks printed characters for a correct determination of unchanged characters 2016-12-22 02:02:40 +01:00
Markus Gans b9f3be782f Skipping the print of characters without changes 2016-12-18 23:34:11 +01:00
Markus Gans fedb5f64f3 Reduce the character output by using character erase and character repeat 2016-12-15 23:11:34 +01:00
Markus Gans e4284615db Accelerates text line drawing by clear with CSI sequences 2016-12-11 16:42:50 +01:00
Markus Gans b10cf800bd Restore window titl only if it could be read before 2016-11-29 00:23:45 +01:00
Markus Gans 4012cdb7b0 Version 0.3.0 2016-11-27 19:16:52 +01:00
Markus Gans 4da63ebcac Improvements for ansi terminal emulators 2016-11-27 00:41:34 +01:00
Markus Gans 8beed7b330 Add the opti-move test program 2016-11-26 15:18:44 +01:00
Markus Gans 5530c99d22 Increase speed on cygwin terminals 2016-11-20 21:15:43 +01:00
Markus Gans 082bbfbaa2 Improve tty settings 2016-11-20 18:26:15 +01:00
Markus Gans fc8ee51e72 Do not draw shadows on a linux console if not all characters are available 2016-11-13 22:08:40 +01:00
Markus Gans 04a483526f Optimized input cursor positioning for terminals without hidden cursor 2016-11-12 22:59:48 +01:00
Markus Gans 125c4b961b The use of xterm default colors now is configurable 2016-11-06 16:36:21 +01:00
Markus Gans e66f00ea92 Determine xterm maximum number of colors via OSC 4 2016-11-05 23:12:05 +01:00
Markus Gans b9cc271765 xterm should be able to use at least 16 colors 2016-11-03 23:26:19 +01:00
Markus Gans 75b452bf52 The class declaration now has a consistent order 2016-11-02 00:37:58 +01:00
Markus Gans 1613d5bb55 Refactor the VGA attribute controller access code 2016-10-17 08:44:38 +02:00
Markus Gans ff6deaf4ab Each virtual window gets its own virtual print cursor 2016-10-15 03:32:30 +02:00
Markus Gans 17b59cf50d Virtual windows can now store their own offset information 2016-10-14 13:02:35 +02:00
Markus Gans cae1a742ea Reduces in the code the number of friend classes 2016-10-13 02:16:51 +02:00
Markus Gans b668f7011c Separate the virtual terminal into a own class vterm 2016-10-11 04:57:36 +02:00
Markus Gans e14cd1af83 Remove some duplicate code 2016-10-09 02:06:06 +02:00
Markus Gans 8328af4132 Add the possibility to scroll text up and down in a virtual window 2016-10-08 02:54:32 +02:00
Markus Gans 605194b69e input cursor is now controlled by the vterm 2016-10-06 23:15:09 +02:00
Markus Gans 1231b9f65d FStatusBar and FMenuBar use now the always-on-top window option 2016-10-02 21:26:25 +02:00
Markus Gans 9ccc5a4f27 New FToolTip widget to show assisted information 2016-10-01 23:18:49 +02:00
Markus Gans c25ee14fe7 Move or resize a window with the arrow keys 2016-09-30 04:55:28 +02:00
Markus Gans c43a7f9bad The window size is now changeable with the mouse 2016-09-29 04:29:12 +02:00
Markus Gans 7369ed1a10 FLabel now transmits the Click events to the parent widget 2016-09-27 00:46:05 +02:00
Markus Gans 9475f34499 Replacing the widget position variables by FRect objects 2016-09-25 23:53:48 +02:00
Markus Gans e462db30a9 New zoom interaction-elements to maximize a FDialog 2016-09-11 16:48:39 +02:00
Markus Gans 6749164aca FButton, FDialog, FLineEdit and FProgressbar has now shadow as default 2016-09-04 18:31:31 +02:00
Markus Gans 3d0f046de9 clearFlatBorder() replace now a double flatline with a single flatline 2016-09-03 15:17:48 +02:00
Markus Gans 817e033d57 setGeometry assigns now the full widget size to the double_flatline_mask 2016-09-02 23:06:47 +02:00
Markus Gans 44cb96e732 incorrect parameter can now return an error message 2016-08-28 22:43:14 +02:00
Markus Gans 2904ed31b9 new inherit background option for characters 2016-08-27 23:23:42 +02:00
Markus Gans 98fbce5de6 Use the new transparent shadow option in drawShadow() 2016-08-25 01:54:10 +02:00
Markus Gans 7d0cf3383e Add a transparent example program + improve transparent shadow 2016-08-21 21:27:44 +02:00
Markus Gans f870506194 switchToPrevWindow() is looking for another window if no previous window was found 2016-08-21 00:16:34 +02:00
Markus Gans bbfbde465f Switch back to the own dialog when you closing a dialog menu 2016-08-20 22:27:23 +02:00
Markus Gans b08d064226 Screen characters now have a transparent and a transparent shadow option 2016-08-14 23:27:34 +02:00
Markus Gans 5606d66404 widget clearing updates now only non-covered characters 2016-08-06 21:43:39 +02:00
Markus Gans 303c402ada Add the windows example to show the window behavior 2016-07-31 20:28:45 +02:00
Markus Gans 0ad1228b1a Fix method setPos in the class FRect 2016-07-31 20:25:25 +02:00
Markus Gans d5685aaafc Remove dialog list item callback from the associated dialog window 2016-07-30 23:00:37 +02:00
Markus Gans 9b7918f2f6 Delete all callbacks from a widget, when it will be destroyed 2016-07-30 14:34:13 +02:00
Markus Gans 15793868fe Improvements for the window focus 2016-07-28 23:38:17 +02:00
Markus Gans a91d0566fc Improvements for the window focus 2016-07-27 04:55:10 +02:00
Markus Gans cb468c59d2 Improvements for the window focus 2016-07-25 23:50:57 +02:00
Markus Gans 4ba7af7cdc Remove callbacks and accelerator keys from FDialogListMenu on closing a dialog window 2016-07-24 20:18:23 +02:00
Markus Gans 3a822e3f3b Add a modifier key correction for the linux tty 2016-07-23 19:50:28 +02:00
Markus Gans c16d3dc3c5 Support to read meta+tab from keyboard 2016-07-17 20:30:00 +02:00
Markus Gans 75b6ac477e Switch to a specific dialog with meta + 1..9 2016-07-16 20:39:38 +02:00
Markus Gans ef201a1a33 Adding a dialog list with the entries in the chronological order of the generation 2016-07-14 23:55:22 +02:00
Markus Gans 9ef3bd3243 Bind accelerator key from the FMenuItem to the root widget 2016-07-14 00:12:16 +02:00
Markus Gans 2acda53224 Status and menu bar insert accelerator keys into root widget 2016-07-12 23:35:33 +02:00
Markus Gans fbb3c8ef11 FDialog focus fix 2016-07-10 03:51:20 +02:00
Markus Gans 07bcf76bf4 Remove obsolete code from FDialog destructor 2016-07-10 00:23:39 +02:00
Markus Gans 9766ee4b6f Better code readability: control structures (if/else, while, switch) are now separated by a blank line. 2016-07-09 00:01:59 +02:00
Markus Gans 2b40854e2f Stop terminal updates during processCloseWidget() is working 2016-07-06 23:11:49 +02:00
Markus Gans 71b5b16865 Add the new class FDialogListMenu to switch between dialog menus 2016-07-03 20:08:39 +02:00
Markus Gans 0c4b3a3a14 Fix the use-after-free bug for previous_widget 2016-06-27 23:08:32 +02:00
Markus Gans a179e190f9 Bug fix for FWindow::activatePrevWindow() 2016-06-26 16:08:03 +02:00
Markus Gans e29e58acb6 Move processNextEvent() code into sub functions 2016-06-25 14:33:43 +02:00
Markus Gans 396525d80f Adding required updateTerminal() calls for FMenuBar 2016-06-22 00:48:33 +02:00
Markus Gans 7dd7455b23 Fixes some status bar update issues and focus problems 2016-06-19 20:32:03 +02:00
Markus Gans 4e447a6096 Improved status bar text updating at window change 2016-06-18 19:10:41 +02:00
Markus Gans 203c50f4e6 Bug fix in FDialog onWindowActive() for combined setFocus() and activateWindow() 2016-06-16 22:50:34 +02:00
Markus Gans 07fbe91cea Bug fix in FTerm updateVTerm() for updates from vdesktop 2016-06-16 00:39:01 +02:00
Markus Gans 28c4a61997 Improved title bar menu integration 2016-06-13 22:44:15 +02:00
Markus Gans b576b8dcad Add a title bar menu to close dialogs 2016-06-12 23:06:58 +02:00
Markus Gans 0146ae9d99 Use nl_langinfo to determine the numeric thousands separator 2016-05-24 22:30:01 +02:00
Markus Gans 6ff2fb0b32 Fix for menus in modal dialogs 2016-05-22 19:18:16 +02:00
Markus Gans dcfd7c6246 Remove duplicate code 2016-05-16 23:36:13 +02:00
Markus Gans 8ca888b063 Don't focus menus with focusFirstChild() and focusLastChild() 2016-05-16 23:26:04 +02:00
Markus Gans e6c4fc9882 Improve adjustSize() 2016-05-16 21:12:18 +02:00
Markus Gans f77c2b3ff1 Better terminal identification 2016-05-01 21:45:27 +02:00
Markus Gans ed518a8e2d Improve 256 color terminal detection 2016-04-30 12:52:18 +02:00
Markus Gans 01be1a5c37 Fix the missing typecast for SpecialCharacter in ui.cpp 2016-04-19 22:05:42 +02:00
Markus Gans 4dca45036e OSC sequence support for GNU Screen and tmux 2016-02-04 01:27:15 +01:00
Markus Gans ffff3aa5ca Better escape sequences readability 2016-01-31 21:06:29 +01:00
Markus Gans 56e5847d41 Moving widget flags into the class fc 2016-01-24 14:53:09 +01:00
Markus Gans e35340114b Avoid height and width underflow in adjustSize 2016-01-17 23:37:52 +01:00
Markus Gans b21fe6a405 moving events into the class fc 2016-01-17 02:57:08 +01:00
Markus Gans 9bc6ec6f96 Better default color handling 2016-01-10 00:56:52 +01:00
Markus Gans 49629a995a New class FOptiAttr to control video attributes and colors 2016-01-08 01:00:05 +01:00
Markus Gans 4a697e7c9a example program to test video attributes 2015-12-24 02:37:01 +01:00
Markus Gans 33fbbd3bc6 activate the menu with ctrl+space 2015-12-21 18:48:38 +01:00
Markus Gans a1b7e34d7d Fix missing eat_newline_glitch (xn) in TeraTerm 2015-12-21 01:10:32 +01:00
Markus Gans 27d8b515f1 Some bug fixes 2015-12-20 23:27:33 +01:00
Markus Gans 7dc30f7c70 Version 0.2.0 2015-12-19 20:51:04 +01:00
Markus Gans 9cc95d952b Optimize menu example 2015-12-18 21:48:27 +01:00
Markus Gans cc58f61480 Avoid to show menus outside of the screen 2015-12-16 23:57:14 +01:00
Markus Gans 8099c16b57 Improve sub-sub-menu handling 2015-12-12 00:50:59 +01:00
Markus Gans 700c10ef1f Newfont Bullet sign 2015-12-11 06:04:29 +01:00
Markus Gans 7207eaa0ff Add "menu" example 2015-12-08 21:05:00 +01:00
Markus Gans ae62812335 Better handling of empty strings in FLineEdit and FButton + sub-menu example 2015-11-29 15:58:36 +01:00
Markus Gans 70dd5af0fb Small menu improvements 2015-11-25 22:10:23 +01:00
Markus Gans 692f8248e1 Improved mouse and keyboard handling in sub-menus 2015-11-24 23:40:41 +01:00
Markus Gans 101c9fcc74 Add sub-menu support 2015-11-22 21:41:18 +01:00
Markus Gans 0c0453eb79 Add new classes FCheckMenuItem and FRadioMenuItem 2015-11-15 19:46:33 +01:00
Markus Gans ca60b762a7 Shows accelerator keys on the right side of the FMenu 2015-11-12 23:14:12 +01:00
Markus Gans 6fd2e7c650 Improve menu accelerator keys 2015-11-12 01:33:16 +01:00
Markus Gans df83751be2 Improved the window focus behavior on leave the menu 2015-11-08 21:50:41 +01:00
Markus Gans fb8d3df421 Menu supports newfont 2015-11-08 02:01:35 +01:00
Markus Gans b05a20943a Improved menu focus handling 2015-11-07 23:16:09 +01:00
Markus Gans a41de9496f Menu bar navigation without menu drop down 2015-11-05 23:25:21 +01:00
Markus Gans 8f3fab4bf5 Improve keyboard shortcut handling in menus 2015-11-04 00:14:23 +01:00
Markus Gans 18a7d991ff First working version of an application menu 2015-11-01 22:45:23 +01:00
Markus Gans 60fe968ce0 Support for the menu key 2015-10-29 21:10:50 +01:00
Markus Gans b9fa26965a Color setting improvements 2015-10-23 23:57:00 +02:00
Markus Gans 7e961d40c3 Make cursor visibility more standards compliant 2015-10-23 00:24:20 +02:00
Markus Gans a478bf6a2a Hidden windows are now non-clickable 2015-10-19 00:07:07 +02:00
Markus Gans 5708ac5699 Newfont characters are now printable in FLabel, FMenuBar and FMenu 2015-10-17 21:05:49 +02:00
Markus Gans 24e52e968e Improve getXTermFont() and getXTermTitle() 2015-10-17 20:39:08 +02:00
Markus Gans 56a6878f46 More faster header inline code 2015-10-17 19:40:43 +02:00
Markus Gans 2b3a7d3a4c Fixed: calculator behavior for negative values in trigonometric functions 2015-10-17 05:13:14 +02:00
Markus Gans 62890f6ecc Reduce the number of getParent() function calls for print operations 2015-10-14 04:06:26 +02:00
Markus Gans 70f5b545a5 Better support for monochrom terminals 2015-10-11 21:56:16 +02:00
Markus Gans a41727c4fc Improve attribute setting for bold, reverse and underline output 2015-10-11 04:09:58 +02:00
Markus Gans 6a92b4a956 Deactivate status bar key automatically 2015-10-10 03:14:14 +02:00
Markus Gans a20f3e6ab5 Eliminate duplicate code 2015-10-09 01:23:49 +02:00
Markus Gans d13dfbcb9d Refactoring FTerm::init() 2015-10-07 02:36:38 +02:00
Markus Gans e4ec5cb8ff Improve compatibility with initialize_color + better TeraTerm support 2015-10-06 05:09:18 +02:00
Markus Gans a640d8e91f No terminal updates until input data is pending 2015-10-03 01:45:13 +02:00
Markus Gans fa05774a13 Some code improvements 2015-09-30 22:39:02 +02:00
Markus Gans 2a44a415f3 Add methods getPos and setPos to FRect and FWidget 2015-09-27 16:00:13 +02:00
Markus Gans 9740350abd Add macro _METHOD_CALLBACK and _FUNCTION_CALLBACK to simplify the use callback functions. The callback data pointer is now predefined with NULL as default argument. 2015-09-24 19:01:27 +02:00
Markus Gans 26e9f75242 Further code optimizations 2015-09-24 00:41:43 +02:00
Markus Gans 3e03f87a6c Add the possibility to hide a virtual window 2015-09-22 22:12:31 +02:00
Markus Gans a5197c6c64 Some code optimizations 2015-09-22 04:18:20 +02:00
Markus Gans 89f6d718f3 Some code optimizations 2015-09-20 05:44:50 +02:00
Markus Gans fea7624124 fixed compile error on 32-bit architectures 2015-09-18 21:38:26 +02:00
Markus Gans b7a0dadd7b * Bug fix in FDialog (use GlobalPos to move)
* Don't check mouse click position on titlebar again while FDialog is in move
2015-08-08 23:40:32 +02:00
Markus Gans 5fd38b0496 Use correct ISO date in the ChangeLog 2015-07-27 16:59:20 +02:00
Markus Gans 44c8be0224 init() method for the FStatusKey constructor to avoid code duplication 2015-07-26 18:24:10 +02:00