<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sciteco/src/interface-gtk.cpp, branch v2.5.2</title>
<subtitle>Scintilla-based Text Editor and COrrector</subtitle>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/'/>
<entry>
<title>interfaces have their own automake subdirectories and convenience libraries now</title>
<updated>2016-01-31T04:04:50+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2016-01-31T04:04:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=ea0179e342343f5fbefb265bde4dea0d475f0781'/>
<id>ea0179e342343f5fbefb265bde4dea0d475f0781</id>
<content type='text'>
 * use libtool convenience libraries as much as possible
   (for all static libraries except Scintilla)
 * improves separation of language and user interface implementations
   (e.g. the Gtk widgets are not interesting for the rest of SciTECO)
 * the Curses popup widget can now be factored out of interface-curses.cpp
 * some common CPPFLAGS are now defined by ./configure via AM_CPPFLAGS,
   so they don't have to be repeated in each submodule.
 * fixed building the Curses UI: GTK_FLOW_BOX_FALLBACK conditional
   must always be defined.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * use libtool convenience libraries as much as possible
   (for all static libraries except Scintilla)
 * improves separation of language and user interface implementations
   (e.g. the Gtk widgets are not interesting for the rest of SciTECO)
 * the Curses popup widget can now be factored out of interface-curses.cpp
 * some common CPPFLAGS are now defined by ./configure via AM_CPPFLAGS,
   so they don't have to be repeated in each submodule.
 * fixed building the Curses UI: GTK_FLOW_BOX_FALLBACK conditional
   must always be defined.
</pre>
</div>
</content>
</entry>
<entry>
<title>updated to Gtk+ 3 and revamped the Gtk interface's popup widget</title>
<updated>2016-01-31T01:21:02+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2016-01-31T00:55:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=ff17c72962d76986b48f3ab05e6ca9e7b3a4f78e'/>
<id>ff17c72962d76986b48f3ab05e6ca9e7b3a4f78e</id>
<content type='text'>
 * depend on Gtk+ 3.10. If necessary older versions should also
   be supportable. GtkOverlay was already introduced in v3.2
 * A fallback for GtkFlowBox is compiled in if the Gtk installation
   is too old. This applies even to Ubuntu 14.04 which still runs
   Gtk v3.10.
 * the threading the Gtk UI is left as it is for the time being
   even though the synchronization mechanism has been deprecated.
   Alternative approaches have to be tried out and benchmarked.
 * Completely revamped the GtkInfoPopup widget.
   It is now as powerful as the Curses UI's popup widget.
   * A GtkOverlay is used instead of the top-level window hack
     in the Gtk2 version.
   * GtkFlowBox is used to lay out the columns of the popup.
   * I had to work around restrictions of GtkScrolledWindow
     by writing my own poor-mans scrolled window which handles
     size requests correctly.
   * The popup window no longer overflows the screen size,
     instead we scroll.
   * Scrolling pagewise is finally supported. Wraps at the
     end of a list just like the Curses UI.
   * Instead of using only two stock icons, we now use
     GIO to get file and directory icons for the current theme.
     This looks even better.
   * The GtkFlowBox allows selections which can be used for mouse
     interaction later. But this is not yet implemented.
 * Theming of the popup widget and command line is still
   not performed correctly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * depend on Gtk+ 3.10. If necessary older versions should also
   be supportable. GtkOverlay was already introduced in v3.2
 * A fallback for GtkFlowBox is compiled in if the Gtk installation
   is too old. This applies even to Ubuntu 14.04 which still runs
   Gtk v3.10.
 * the threading the Gtk UI is left as it is for the time being
   even though the synchronization mechanism has been deprecated.
   Alternative approaches have to be tried out and benchmarked.
 * Completely revamped the GtkInfoPopup widget.
   It is now as powerful as the Curses UI's popup widget.
   * A GtkOverlay is used instead of the top-level window hack
     in the Gtk2 version.
   * GtkFlowBox is used to lay out the columns of the popup.
   * I had to work around restrictions of GtkScrolledWindow
     by writing my own poor-mans scrolled window which handles
     size requests correctly.
   * The popup window no longer overflows the screen size,
     instead we scroll.
   * Scrolling pagewise is finally supported. Wraps at the
     end of a list just like the Curses UI.
   * Instead of using only two stock icons, we now use
     GIO to get file and directory icons for the current theme.
     This looks even better.
   * The GtkFlowBox allows selections which can be used for mouse
     interaction later. But this is not yet implemented.
 * Theming of the popup widget and command line is still
   not performed correctly.
</pre>
</div>
</content>
</entry>
<entry>
<title>updated copyright to 2016</title>
<updated>2016-01-28T01:45:18+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2016-01-28T01:25:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=e3818dae4b4a5fa2af9c982a0b3a3cf4d15cb373'/>
<id>e3818dae4b4a5fa2af9c982a0b3a3cf4d15cb373</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>added "^FCLOSE" function key macro and defined SIGTERM behaviour</title>
<updated>2015-06-24T01:40:06+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-06-24T01:23:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=ae2f607a19b12a30374de059ec29beaf41f82c73'/>
<id>ae2f607a19b12a30374de059ec29beaf41f82c73</id>
<content type='text'>
 * ^FCLOSE is inserted when the "Close" key is pressed.
   It is used by the GTK+ UI to deliver window close requests
   and SIGTERM occurrences.
   (this replaces the "Break" key used before in the GTK+ UI).
 * The default action of ^FCLOSE is to quit SciTECO, therefore
   window closing is possible even in --no-profile mode for instance.
 * fixed a minor memleak in Cmdline::fnmacro()
 * added ^FCLOSE implementation to fnkeys.tes to insert EX.
   This currently has the disadvantage of overwriting
   the error message with syntax errors if there are modified buffers
   but it will at least not close the window if there are modified
   buffers.
 * SIGTERM will now be similar to SIGINT by default instead of
   terminating SciTECO right away.
 * the GTK+ UI handles SIGTERM by emulating the "close" key while
   still interrupting like SIGINT.
 * GTK+: SIGTERM and ^C will interrupt by sending SIGINT to the
   entire process group instead of simply setting `sigint_occurred`.
   This fixes interrupting EC and EG commands with long-running
   or hanging programs and is relevant to the solution of #4.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * ^FCLOSE is inserted when the "Close" key is pressed.
   It is used by the GTK+ UI to deliver window close requests
   and SIGTERM occurrences.
   (this replaces the "Break" key used before in the GTK+ UI).
 * The default action of ^FCLOSE is to quit SciTECO, therefore
   window closing is possible even in --no-profile mode for instance.
 * fixed a minor memleak in Cmdline::fnmacro()
 * added ^FCLOSE implementation to fnkeys.tes to insert EX.
   This currently has the disadvantage of overwriting
   the error message with syntax errors if there are modified buffers
   but it will at least not close the window if there are modified
   buffers.
 * SIGTERM will now be similar to SIGINT by default instead of
   terminating SciTECO right away.
 * the GTK+ UI handles SIGTERM by emulating the "close" key while
   still interrupting like SIGINT.
 * GTK+: SIGTERM and ^C will interrupt by sending SIGINT to the
   entire process group instead of simply setting `sigint_occurred`.
   This fixes interrupting EC and EG commands with long-running
   or hanging programs and is relevant to the solution of #4.
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed comment in interface-gtk.cpp</title>
<updated>2015-06-23T01:02:19+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-06-23T01:02:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=9fd2da5b228f69e7705ce3a4ff45e50f7edaf39b'/>
<id>9fd2da5b228f69e7705ce3a4ff45e50f7edaf39b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>install PNG icon and use it to set GTK's window icon</title>
<updated>2015-06-22T23:55:37+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-06-22T23:55:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=eed939f4c87c7016be8c3e913cdb1f620b29256f'/>
<id>eed939f4c87c7016be8c3e913cdb1f620b29256f</id>
<content type='text'>
 * it is installed into the package's data dir.
   It is always installed, even for Curses builds.
   This means when packaging for Debian, the icon could
   be part of the "sciteco-common" package.
   If there will ever be more GTK-specific files that
   need to be installed, this will probably change and
   the icon will be installed for GTK builds only and
   become part of the "sciteco-gtk" Debian package.
 * if the icon could not be loaded, we fail silently.
 * will not work with windows builds. On Windows, we
   should just use the icon resource linked into the binary
   rather than loading the image from file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * it is installed into the package's data dir.
   It is always installed, even for Curses builds.
   This means when packaging for Debian, the icon could
   be part of the "sciteco-common" package.
   If there will ever be more GTK-specific files that
   need to be installed, this will probably change and
   the icon will be installed for GTK builds only and
   become part of the "sciteco-gtk" Debian package.
 * if the icon could not be loaded, we fail silently.
 * will not work with windows builds. On Windows, we
   should just use the icon resource linked into the binary
   rather than loading the image from file.
</pre>
</div>
</content>
</entry>
<entry>
<title>GTK UI: beep on error</title>
<updated>2015-06-22T23:03:59+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-06-22T22:58:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=3fd1a19477d88f572af9b7f9d0a4b73f90012a6b'/>
<id>3fd1a19477d88f572af9b7f9d0a4b73f90012a6b</id>
<content type='text'>
 * the Curses UI does that too
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * the Curses UI does that too
</pre>
</div>
</content>
</entry>
<entry>
<title>GTK UI: disable keyboard and mouse interaction with Scintilla views</title>
<updated>2015-06-22T22:01:38+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-06-22T22:01:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=1707b10c7881ab275a60b5583ddb42b681d809fb'/>
<id>1707b10c7881ab275a60b5583ddb42b681d809fb</id>
<content type='text'>
 * this has long been broken in the GTK UI.
   It must not be possible to let Scintilla react to mouse and
   keyboard events since all side-effects on the buffer state
   must be via the SciTECO language.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * this has long been broken in the GTK UI.
   It must not be possible to let Scintilla react to mouse and
   keyboard events since all side-effects on the buffer state
   must be via the SciTECO language.
</pre>
</div>
</content>
</entry>
<entry>
<title>major GTK UI rewrite: use a separate execution thread</title>
<updated>2015-06-22T20:41:50+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-06-22T20:41:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=730f801f1d75bc247c86f76345e71f9ea128a07d'/>
<id>730f801f1d75bc247c86f76345e71f9ea128a07d</id>
<content type='text'>
 * the execution thread does not block the main thread (with
   the main loop).
 * therefore if SciTECO executes a long-running macro,
   the UI stays "responsive".
 * also this allows us to handle ^C interruptions.
   This is part of the solution to #4 for GTK+ UIs.
 * to speed up execution and avoid frequent UI redraws
   (now that we run concurrently, there are even more redraws),
   the view change is applied only after key presses.
 * also we freeze all UI updates on the view during SciTECO's
   key processing.
 * Closing the window, requests a graceful execution thread
   shut down. This may later be extended to allow programmable
   window close-behaviour using a special function key macro
   (e.g. mapped to the "Break" key).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 * the execution thread does not block the main thread (with
   the main loop).
 * therefore if SciTECO executes a long-running macro,
   the UI stays "responsive".
 * also this allows us to handle ^C interruptions.
   This is part of the solution to #4 for GTK+ UIs.
 * to speed up execution and avoid frequent UI redraws
   (now that we run concurrently, there are even more redraws),
   the view change is applied only after key presses.
 * also we freeze all UI updates on the view during SciTECO's
   key processing.
 * Closing the window, requests a graceful execution thread
   shut down. This may later be extended to allow programmable
   window close-behaviour using a special function key macro
   (e.g. mapped to the "Break" key).
</pre>
</div>
</content>
</entry>
<entry>
<title>fixed compilation of GTK+ UI</title>
<updated>2015-06-22T14:55:49+00:00</updated>
<author>
<name>Robin Haberkorn</name>
<email>robin.haberkorn@googlemail.com</email>
</author>
<published>2015-06-22T14:55:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.fmsbw.de/sciteco/commit/?id=6f48745171ab3ef898b24d8da9732c4f309b08c7'/>
<id>6f48745171ab3ef898b24d8da9732c4f309b08c7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
