projects
/
rodin
/
chimara.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* Refactored the cancel_line_input_request code to be less copy/pasted.
[rodin/chimara.git]
/
src
/
window.h
diff --git
a/src/window.h
b/src/window.h
index 4e705f2d69822bbf14a510b6691974d7e237a151..39c43149f9d6819e225cffd8d29279803e1c4325 100644
(file)
--- a/
src/window.h
+++ b/
src/window.h
@@
-6,6
+6,8
@@
#include "stream.h"
#include "error.h"
#include "stream.h"
#include "error.h"
+#include "callbacks.h"
+#include "input.h"
enum InputRequestType
{
enum InputRequestType
{
@@
-16,19
+18,51
@@
enum InputRequestType
INPUT_REQUEST_LINE_UNICODE
};
INPUT_REQUEST_LINE_UNICODE
};
+/**
+ * glk_window_struct:
+ *
+ * This is an opaque structure (see <link linkend="chimara-Opaque-Structures">
+ * Opaque Structures</link> and should not be accessed directly.
+ */
struct glk_window_struct
{
struct glk_window_struct
{
+ /*< private >*/
+ glui32 magic, rock;
+ /* Pointer to the node in the global tree that contains this window */
GNode *window_node;
GNode *window_node;
-
- glui32
rock
;
- glui32 window_type;
+ /* Window parameters */
+ glui32
type
;
+ /* "widget" is the actual widget with the window's functionality */
GtkWidget *widget;
GtkWidget *widget;
+ /* "frame" is the widget that is the child of the ChimaraGlk container, such
+ as a scroll window. It may be the same as "widget". */
+ GtkWidget *frame;
+ /* Width and height of the window's size units, in pixels */
+ int unit_width;
+ int unit_height;
+ /* Streams associated with the window */
strid_t window_stream;
strid_t echo_stream;
strid_t window_stream;
strid_t echo_stream;
+ /* Width and height of the window, in characters (text grids only) */
+ glui32 width;
+ glui32 height;
+ /* Window split data (pair windows only) */
+ winid_t key_window;
+ glui32 split_method;
+ glui32 constraint_size;
+ /* Input request stuff */
enum InputRequestType input_request_type;
gchar *line_input_buffer;
glui32 *line_input_buffer_unicode;
glui32 line_input_buffer_max_len;
enum InputRequestType input_request_type;
gchar *line_input_buffer;
glui32 *line_input_buffer_unicode;
glui32 line_input_buffer_max_len;
+ gboolean mouse_input_requested;
+ /* Line input field (text grids only) */
+ glui32 input_length;
+ GtkTextChildAnchor *input_anchor;
+ GtkWidget *input_entry;
+ /* Signal handlers */
+ gulong keypress_handler;
+ gulong insert_text_handler;
};
#endif
};
#endif