projects/chimara/chimara.git
15 years agoTraps illegal printing to a window with line input pending
fliep [Fri, 22 May 2009 09:52:05 +0000 (09:52 +0000)]
Traps illegal printing to a window with line input pending

15 years ago* Refactored the cancel_line_input_request code to be less copy/pasted.
rodin [Fri, 22 May 2009 09:41:20 +0000 (09:41 +0000)]
* Refactored the cancel_line_input_request code to be less copy/pasted.
* Fixed called glk_exit() with running timer crash.

15 years agoFix #11: Implemented glk_cancel_char_event() and glk_cancel_line_event().
fliep [Fri, 22 May 2009 09:23:49 +0000 (09:23 +0000)]
Fix #11: Implemented glk_cancel_char_event() and glk_cancel_line_event().

15 years agoFor some reason these didn't commit in revision [59]
fliep [Fri, 22 May 2009 09:22:35 +0000 (09:22 +0000)]
For some reason these didn't commit in revision [59]

15 years ago* Added timer support
rodin [Fri, 22 May 2009 08:03:47 +0000 (08:03 +0000)]
* Added timer support
* Added multiwin.c test case (which still segfaults all the time)

15 years agoDefined glui32 and glsi32 in terms of the 32-bit integer types in <stdint.h>, instead...
fliep [Thu, 21 May 2009 13:14:11 +0000 (13:14 +0000)]
Defined glui32 and glsi32 in terms of the 32-bit integer types in <stdint.h>, instead of those in GLib. Now the entire GLib interface is not exposed to Glk plugins anymore.

15 years ago- In the documentation, replaced <informalexample><programlisting> by |[...]| for...
fliep [Wed, 20 May 2009 23:10:48 +0000 (23:10 +0000)]
- In the documentation, replaced <informalexample><programlisting> by |[...]| for readability.
- Removed mouse pointer from fig11.png.

15 years agoUse gdk_window_process_all_updates() to send window update events immediately instead...
fliep [Tue, 19 May 2009 21:07:56 +0000 (21:07 +0000)]
Use gdk_window_process_all_updates() to send window update events immediately instead of asynchronously.

15 years agoTurned off line wrapping on text grids. They don't need it, since they're always...
fliep [Tue, 19 May 2009 20:53:26 +0000 (20:53 +0000)]
Turned off line wrapping on text grids. They don't need it, since they're always the correct size, and it was causing them to wrap sometimes when the width of the text was exactly the width of the window.

15 years ago- Changed splittest.c to run through all the examples of window splitting in the
fliep [Tue, 19 May 2009 20:47:32 +0000 (20:47 +0000)]
- Changed splittest.c to run through all the examples of window splitting in the
  Glk spec
- Took screenshots and added those to the documentation

15 years agoNow windows can be sized arbitrarily small, but GDK chokes when you try to drag the
fliep [Wed, 13 May 2009 22:01:25 +0000 (22:01 +0000)]
Now windows can be sized arbitrarily small, but GDK chokes when you try to drag the
size smaller than 0. Bug in GDK?

15 years agoCorrectly handles what happens when a window that is the key window of another
fliep [Wed, 13 May 2009 21:40:04 +0000 (21:40 +0000)]
Correctly handles what happens when a window that is the key window of another
window is closed.

15 years ago- Text grid windows don't need scrollbars
fliep [Wed, 6 May 2009 22:15:26 +0000 (22:15 +0000)]
- Text grid windows don't need scrollbars
- Set text windows' minimum size request to "as small as possible", otherwise they can't
  be resized smaller than their contents

15 years agoMade the size of the main window the "default" size, instead of the "minimum" size.
fliep [Wed, 6 May 2009 20:46:51 +0000 (20:46 +0000)]
Made the size of the main window the "default" size, instead of the "minimum" size.

15 years agoWhen splitting a window W, the new pair window was always inserted back into the...
fliep [Wed, 6 May 2009 19:48:04 +0000 (19:48 +0000)]
When splitting a window W, the new pair window was always inserted back into the tree
as the right-hand child of W's former parent. So if you split a window vertically into A and
B and then split A (the top half) again into C and D, then C and D would end up below B.
Fixed.

15 years agoNow the size of text grid windows is updated when they are resized.
fliep [Tue, 5 May 2009 11:47:22 +0000 (11:47 +0000)]
Now the size of text grid windows is updated when they are resized.

15 years agoCleaned up some window closing code, fixed GDK thread lock problem
fliep [Tue, 5 May 2009 09:56:01 +0000 (09:56 +0000)]
Cleaned up some window closing code, fixed GDK thread lock problem

15 years agoAdded comments and cleaned up code
fliep [Sun, 3 May 2009 21:52:25 +0000 (21:52 +0000)]
Added comments and cleaned up code

15 years agoFixed a crash when closing pair windows directly
fliep [Sun, 3 May 2009 21:49:54 +0000 (21:49 +0000)]
Fixed a crash when closing pair windows directly

15 years agoFixed a bug: pair windows need window streams too, even though they don't print
fliep [Sun, 3 May 2009 17:38:35 +0000 (17:38 +0000)]
Fixed a bug: pair windows need window streams too, even though they don't print

15 years agoUse the sublime CLAMP() macro
fliep [Sun, 3 May 2009 17:01:03 +0000 (17:01 +0000)]
Use the sublime CLAMP() macro

15 years agoAdded a "spacing" property which sets the border width between Glk windows.
fliep [Sun, 3 May 2009 16:47:03 +0000 (16:47 +0000)]
Added a "spacing" property which sets the border width between Glk windows.

15 years agoNow pays attention to the GtkContainer "border-width" property when allocating size
fliep [Sun, 3 May 2009 15:22:18 +0000 (15:22 +0000)]
Now pays attention to the GtkContainer "border-width" property when allocating size

15 years agoFixed issue #1. Probably needs some more thorough testing.
fliep [Sun, 3 May 2009 12:50:02 +0000 (12:50 +0000)]
Fixed issue #1. Probably needs some more thorough testing.

15 years agoFixed issue #4.
fliep [Sat, 2 May 2009 19:34:20 +0000 (19:34 +0000)]
Fixed issue #4.

15 years agoAdded properties to the ChimaraGlk widget: "default-font-description" and
fliep [Sat, 2 May 2009 17:05:54 +0000 (17:05 +0000)]
Added properties to the ChimaraGlk widget: "default-font-description" and
"monospace-font-description". They are the default fonts used in the Glk library. They can
either be set directly from PangoFontDescription structs, or by a string such as "Times 12".

This is for eventually solving issue #4.

15 years ago- Added pkg-config files (.pc.in), so after the library is installed you can
fliep [Thu, 23 Apr 2009 20:52:47 +0000 (20:52 +0000)]
- Added pkg-config files (.pc.in), so after the library is installed you can
link to it with `pkg-config --cflags --libs chimara`.
- Plugins need <glib.h> to compile, for the definition of glui32 and glsi32
in glk.h; don't know why this worked before.
- Fixed libtool craziness. Apparently when you declare your plugins "noinst"
then libtool "figures out" that it doesn't need to build shared libraries.

15 years agoAdded 'static' and 'G_GNUC_INTERNAL' to hide all symbols that shouldn't be exported
fliep [Mon, 30 Mar 2009 21:36:05 +0000 (21:36 +0000)]
Added 'static' and 'G_GNUC_INTERNAL' to hide all symbols that shouldn't be exported

15 years agoFixed a bug with text grid line input in the middle of an existing selection
fliep [Sun, 29 Mar 2009 21:38:32 +0000 (21:38 +0000)]
Fixed a bug with text grid line input in the middle of an existing selection

15 years agoWrote better checks for illegal actions.
fliep [Sun, 29 Mar 2009 21:25:45 +0000 (21:25 +0000)]
Wrote better checks for illegal actions.
Added "magic numbers" to the window, stream, and fileref structures, for better checking.
Added macros for checking and error reporting in magic.h.

15 years agoAutomake tweaking
fliep [Sun, 29 Mar 2009 15:06:30 +0000 (15:06 +0000)]
Automake tweaking

15 years agoGot Gtk-Doc working. Now all the fancy /** comments before the functions
fliep [Sun, 29 Mar 2009 01:13:07 +0000 (01:13 +0000)]
Got Gtk-Doc working. Now all the fancy /** comments before the functions
actually mean something. To use gtk-doc, invoke configure like this:

./configure --enable-gtk-doc

When you do this, configure will generate makefiles that rebuild the docs
whenever the source is changed. Calling configure without that option
generates makefiles that don't rebuild the docs. Building the docs takes
some time so you probably want to disable it unless you're actively working
on the docs.

The documentation is output as HTML, which you can browse by pointing your
browser to

file:///path/to/chimara/docs/reference/html/index.html

The really cool thing is that the docs are also built as a devhelp module,
so when you make install, the devhelp module is installed and automatically
shows up in Devhelp.

The documentation consists of two sections: one is the API of our widget,
the other is the Glk API specification which we have been working from. I
have obtained permission from Andrew Plotkin to include and alter this spec.
I have changed the order of things around a little bit so it makes more
sense as a Gtk-Doc reference book.

The API spec only contains the parts that we have implemented so far. I
figure if we update the documentation for the Glk API functions as we
implement them, then we'll be able to see at a glance how far we've gotten.

One more change left to describe: the new file src/doc.c consists of only
comments. These comments contain two things. One is the introductory
descriptions of each Gtk-Doc section. I put these in here because they
really bloated the regular C files. The other is the Gtk-Doc comments for
constants and structures that are defined in glk.h. I put these in here
because the spec says glk.h is supposed to be the same on every platform
except for the typedefs of the 32-bit types.

15 years agoProperly set up svn:ignore properties.
fliep [Sat, 7 Mar 2009 12:36:59 +0000 (12:36 +0000)]
Properly set up svn:ignore properties.
Removed svn:executable properties on files that didn't need them.

15 years agoI have Autotools-Fu.
fliep [Fri, 6 Mar 2009 23:16:31 +0000 (23:16 +0000)]
I have Autotools-Fu.

We should now be at the bare minimum of files under version control,
which also means that _NO_ generated files are versioned. This should
mean that any problems which arise from, for example, having different
libtool versions on my Fedora machine and my iBook, are solved.

I found out that autogen.sh is necessary after all, since Gtk-Doc and
Intltool require their own preparation programs in addition to the
Autotools' autoreconf. I rewrote it to be much simpler and easier to
read, and removed all of the checks for extreme system configurations.
That's because users shouldn't have to run it, only developers, who
should all have decent systems with decent versions of Autotools.

The autogen script runs autoreconf, but not configure. (Apparently
running configure automatically is a big timewaster.) So, after
checking out a new revision, the correct sequence to run is:

./autogen.sh
./configure
make

There are still a couple of warnings from the Gtk-Doc autoconf macros,
but since we don't actually do anything with Gtk-Doc yet, I will save
fixing that for when I attain Autotools-Nirvana.

15 years agoRewrote configure.ac according to my new l33t knowledge of autotools, and
fliep [Thu, 5 Mar 2009 23:14:46 +0000 (23:14 +0000)]
Rewrote configure.ac according to my new l33t knowledge of autotools, and
removed obsolete macros.

Now, after checking out a new revision, use the command:
autoreconf --install --force
instead of autogen.sh to rebuild all the platform-specific files.

15 years agoWrote all remaining Unicode input and output functions.
fliep [Tue, 3 Mar 2009 23:21:53 +0000 (23:21 +0000)]
Wrote all remaining Unicode input and output functions.
Updated gestalt to support Unicode.
Split off functions to convert from one character set to another and put them in charset.c.

glk_put_char_uni(), glk_put_string_uni(), glk_put_buffer_uni(),
glk_put_char_stream_uni(), glk_put_string_stream_uni(),
glk_put_buffer_stream_uni(), glk_get_char_stream_uni(),
glk_get_buffer_stream_uni(), glk_get_line_stream_uni()

15 years agoFixed a bug with newlines in line input on text buffer windows.
fliep [Sun, 1 Mar 2009 23:31:01 +0000 (23:31 +0000)]
Fixed a bug with newlines in line input on text buffer windows.

15 years agoRefined previous update so that arrow keys and other navigation keys aren't redirected
fliep [Sun, 1 Mar 2009 22:39:25 +0000 (22:39 +0000)]
Refined previous update so that arrow keys and other navigation keys aren't redirected

15 years agoNow keystrokes in a text grid window are redirected to the line input field. Fixes...
fliep [Sun, 1 Mar 2009 21:39:10 +0000 (21:39 +0000)]
Now keystrokes in a text grid window are redirected to the line input field. Fixes issue #5.

15 years agoImplemented line input in text grid windows using a GtkEntry.
fliep [Sun, 1 Mar 2009 19:32:23 +0000 (19:32 +0000)]
Implemented line input in text grid windows using a GtkEntry.
Fixed another off-by-one error in line input requests :-P
Corrected the source dependencies for the plugin programs in the automake file.

15 years agoWrote behavior of Backspace key during line input in text grid windows.
fliep [Sat, 28 Feb 2009 21:18:19 +0000 (21:18 +0000)]
Wrote behavior of Backspace key during line input in text grid windows.
Fixed off-by-one errors in line input length.

15 years agoRemoved autogenerated files from source control. This will help
fliep [Thu, 5 Feb 2009 00:05:49 +0000 (00:05 +0000)]
Removed autogenerated files from source control. This will help
prevent autotools headaches (I think.)

To compile from a clean working copy, do ./autogen.sh and all the
necessary files will be generated.

15 years agoAdded text grid windows. Output, cursor placement, and character input work. Line...
fliep [Wed, 4 Feb 2009 23:55:06 +0000 (23:55 +0000)]
Added text grid windows. Output, cursor placement, and character input work. Line input also works, but is shaky.

Changed gridtest.c to splittest.c, and put my gridtest.c back in.

15 years agoAdded gmodule-2.0 to the dependencies of the test program.
fliep [Tue, 27 Jan 2009 17:56:22 +0000 (17:56 +0000)]
Added gmodule-2.0 to the dependencies of the test program.
Otherwise the signal handlers are not found on Linux.

15 years agopreliminary support for splitting of windows. Does not respect window sizes yet....
rodin [Thu, 15 Jan 2009 15:33:41 +0000 (15:33 +0000)]
preliminary support for splitting of windows. Does not respect window sizes yet. Crashes when windows are opened and closed without GTK having time to update the view.

15 years agoAdded gtk-doc comments to the ChimaraGlk widget.
fliep [Mon, 29 Dec 2008 22:46:02 +0000 (22:46 +0000)]
Added gtk-doc comments to the ChimaraGlk widget.

15 years agoImplemented glk_window_get_size()
fliep [Fri, 26 Dec 2008 08:25:16 +0000 (08:25 +0000)]
Implemented glk_window_get_size()
Fixed dependencies in the makefile

15 years agoFixed a segfault when opening an invalid window.
fliep [Wed, 24 Dec 2008 22:14:03 +0000 (22:14 +0000)]
Fixed a segfault when opening an invalid window.

15 years agoImplemented "started" and "stopped" signals
fliep [Wed, 24 Dec 2008 06:34:21 +0000 (06:34 +0000)]
Implemented "started" and "stopped" signals

15 years agoAdded dynamic module loading: now the Glk program (i.e., the
fliep [Tue, 23 Dec 2008 06:15:17 +0000 (06:15 +0000)]
Added dynamic module loading: now the Glk program (i.e., the
interpreter) is loaded from a .so file.
The code from the Chimara library and the test program are now
completely separate.
Removed the use of error_dialog() from the library code and replaced
it with GTK warning functions.

15 years agoRemoved old Makefile.
fliep [Mon, 22 Dec 2008 04:55:36 +0000 (04:55 +0000)]
Removed old Makefile.

When checking out a copy for the first time, use ./autogen.sh to configure,
then make to build.

15 years agoChanged build system to Automake. Split Glk code off into a GTK widget.
fliep [Mon, 22 Dec 2008 04:50:50 +0000 (04:50 +0000)]
Changed build system to Automake. Split Glk code off into a GTK widget.

16 years agoVerbeterd interrupt mechanisme en afbreken van het Glk programma
fliep [Sun, 24 Aug 2008 15:19:05 +0000 (15:19 +0000)]
Verbeterd interrupt mechanisme en afbreken van het Glk programma

glk_set_interrupt_handler()
glk_tick()

16 years agoCode opschonen, toevoegen documentatie
fliep [Sun, 24 Aug 2008 00:37:04 +0000 (00:37 +0000)]
Code opschonen, toevoegen documentatie

16 years agofirst.c compilet en draait!
fliep [Tue, 19 Aug 2008 22:56:35 +0000 (22:56 +0000)]
first.c compilet en draait!

16 years agoTesten en debuggen van alle file en memory stream functies
fliep [Sun, 17 Aug 2008 22:29:43 +0000 (22:29 +0000)]
Testen en debuggen van alle file en memory stream functies

16 years agoFile en memory streams, en lezen van input streams. Nog niet getest. Alle
fliep [Sat, 16 Aug 2008 16:19:02 +0000 (16:19 +0000)]
File en memory streams, en lezen van input streams. Nog niet getest. Alle
stream I/O functies afgesplitst in strio.c.

glk_get_char_stream()
glk_get_buffer_stream()
glk_get_line_stream()
glk_stream_close()
glk_stream_get_position()
glk_stream_set_position()
glk_stream_open_memory()
glk_stream_open_memory_uni()

16 years agoFiles openen. Niet getest, omdat het schrijven naar files nog niet
fliep [Sat, 9 Aug 2008 22:36:35 +0000 (22:36 +0000)]
Files openen. Niet getest, omdat het schrijven naar files nog niet
geschreven is.

glk_stream_open_file()
glk_stream_open_file_uni()

16 years agoAll of the fileref functions are now implemented:
fliep [Sun, 20 Jul 2008 00:09:16 +0000 (00:09 +0000)]
All of the fileref functions are now implemented:

glk_fileref_create_temp()
glk_fileref_create_by_prompt()
glk_fileref_create_by_name()
glk_fileref_create_from_fileref()
glk_fileref_destroy()
glk_fileref_delete_file()
glk_fileref_does_file_exist()

16 years agoOeps, nog enkele bugs
fliep [Sun, 13 Jul 2008 16:31:54 +0000 (16:31 +0000)]
Oeps, nog enkele bugs

16 years agoToevoegen van de sources die ik vorige keer vergeten was, en nog wat
fliep [Sun, 13 Jul 2008 16:23:38 +0000 (16:23 +0000)]
Toevoegen van de sources die ik vorige keer vergeten was, en nog wat
triviale functies geimplementeerd, zoals echo streams van windows.

Ik heb ook de andere glk_put_ functies geschreven; de functie met de echte
code is nu glk_put_string_stream(), en de anderen formatteren hun input en
geven die door aan glk_put_string_stream().

Library functies geimplementeerd:
glk_window_get_type()
glk_window_get_parent()
glk_window_get_sibling()
glk_window_get_root()
glk_window_clear()
glk_window_set_echo_stream()
glk_window_get_echo_stream()
glk_stream_get_current()
glk_put_string_stream()
glk_put_char()
glk_put_char_stream()
glk_put_buffer()
glk_put_buffer_stream()

16 years agoEen heleboel, relatief nutteloze dingen, zoals blank windows, en filerefs
fliep [Sat, 12 Jul 2008 23:43:30 +0000 (23:43 +0000)]
Een heleboel, relatief nutteloze dingen, zoals blank windows, en filerefs
die nog niets doen. Ik heb de volgende functies geimplementeerd. De unicode
functies heb ik nog niet getest.

glk_gestalt()
glk_gestalt_ext()
glk_window_iterate()
glk_window_get_rock()
glk_stream_iterate()
glk_stream_get_rock()
glk_fileref_iterate()
glk_fileref_get_rock()
glk_char_to_lower()
glk_char_to_upper()
glk_buffer_to_lower_case_uni()
glk_buffer_to_upper_case_uni()
glk_buffer_to_title_case_uni()

16 years agoCommentaar toegevoegd aan code en tevens Gtk-Doc comments voor alle
fliep [Sat, 12 Jul 2008 19:40:23 +0000 (19:40 +0000)]
Commentaar toegevoegd aan code en tevens Gtk-Doc comments voor alle
officiele Glk functies, mochten we ooit documentatie willen uitspugen

16 years agoEerste import.
fliep [Sat, 12 Jul 2008 00:35:15 +0000 (00:35 +0000)]
Eerste import.

Philip en Marijn zijn vet goed!