source: projects/visualisator/gtkpapertape.h @ 3

Last change on this file since 3 was 3, checked in by sven, 16 years ago

Das Lochstreifenvisualisierungsprogramm wurde komplett umgeschrieben. Die
Datei gtkprogram.c wurde aufgeteilt in ein neues Objekt, GtkPaperTape,
welches alle Zeichenoperationen mit dem Lowlevel-Objekt LOCHSTREIFEN
abgleicht sowie zahlreiche GUI-Menues und aehnliches zur Verfuegung stellt.
Letztlich sieht die Verzeichnisstruktur jetzt so aus:

  • lochstreifen.c, lochstreifen.h: Das LOCHSTREIFEN Cairo-Zeichenobjekt
  • gtkpapertape.c, gtkpapertape.h: Das GtkPaperTape GTK-Widget
  • gtk.c: Ein GTK-Programm, welches das GtkPaperTape-Widget in einem Fenster anzeigt.
  • cli.c: Ein Kommandozeilenprogramm, welches ein Kommandozeileninterface (per Aufrufparameter) fuer das LOCHSTREIFEN-Objekt bietet
File size: 3.5 KB
Line 
1/**
2 *
3 * The paper tape GTK widget
4 *
5 * This widget wraps the pure cairo widget "LOCHSTREIFEN" with some
6 * GTK widgets (which implement scrolling, mouse events, menues for
7 * changing parameters, etc.) and adds events and signals for simple
8 * interaction and use in applications.
9 *
10 * started 05.06.2008 13:13 (the first new project in the SVN)
11 * Sven
12 *
13 *
14 */
15
16#ifndef GTK_PAPER_TAPE_H
17#define GTK_PAPER_TAPE_H
18
19#include <glib.h>
20#include <glib-object.h>
21#include <gtk/gtk.h>
22#include "lochstreifen.h"
23
24
25G_BEGIN_DECLS
26
27/*#define GTK_PAPER_TAPE_TYPE              (gtk_paper_tape_get_type())
28#define GTK_TYPE_PAPER_TAPE              (gtk_paper_tape_get_type())
29#define GTK_PAPER_TAPE(obj)              (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_PAPER_TAPE, GtkPaperTape))
30#define GTK_PAPER_TAPE_CLASS(klasse)     (G_TYPE_CHECK_CLASS_CAST((klasse), GTK_TYPE_PAPER_TAPE, GtkPaperTapeClass))
31#define GTK_IS_PAPER_TAPE(obj)           (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_PAPER_TAPE))
32#define GTK_IS_PAPER_TAPE_CLASS(klasse)  (G_TYPE_CHECK_CLASS_TYPE((klasse), GTK_TYPE_PAPER_TAPE))
33#define GTK_PAPER_TAPE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_PAPER_TAPE, GtkPaperTapeClass))*/
34
35#define GTK_PAPER_TAPE_TYPE            (gtk_paper_tape_get_type ())
36#define GTK_PAPER_TAPE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_PAPER_TAPE_TYPE, GtkPaperTape))
37#define GTK_PAPER_TAPE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_PAPER_TAPE_TYPE, GtkPaperTapeClass))
38#define GTK_IS_PAPER_TAPE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_PAPER_TAPE_TYPE))
39#define GTK_IS_PAPER_TAPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_PAPER_TAPE_TYPE))
40
41typedef struct _GtkPaperTape GtkPaperTape;
42typedef struct _GtkPaperTapeClass GtkPaperTapeClass;
43
44struct _GtkPaperTape {
45  //GObject parent;
46  GtkWidget widget; // was GObject parent;
47  // instance members
48
49  /** Main window where this widget belongs to
50   * (to be used e.g. for modal dialogs) */
51  GtkWidget *parent_window;
52
53  /** The famous LOCHSTREIFEN widget  */
54  LOCHSTREIFEN *lochstreifen;
55
56  /** The Statusbar where the mouse movement messages appear */
57  GtkWidget *statusbar;
58
59  /**
60   * The GtkScrolledWindow where the
61   * GtkDrawingArea resides
62   */
63  GtkWidget *scroll;
64  GtkWidget *draw;
65
66  /*< private >*/
67  GtkWidget *menu_toggle_fit_screen; 
68  GTimer *last_statusbar_update;
69};
70
71struct _GtkPaperTapeClass {
72  GtkWidgetClass parent_class; //GObjectClass parent;
73};
74
75GType gtk_paper_tape_get_type(void);
76
77GtkWidget*     gtk_paper_tape_new();
78
79void gtk_paper_tape_menu_export(GtkPaperTape *papertape, GtkWidget *target_menu);
80void gtk_paper_tape_menu_view(GtkPaperTape *papertape, GtkWidget *target_menu);
81void gtk_paper_tape_menu_colors(GtkPaperTape *papertape, GtkWidget *target_menu);
82
83/* fast "almost macro" functions */
84GtkWidget *fast_color_menuitem(const GtkWidget *parentmenu, const char *dialog_title, const char *labeltext, GdkColor *initialColor, GtkSizeGroup *label_nice_sizegroup);
85GtkWidget *fast_stock_menuitem(const GtkWidget *parentmenu, const gchar *stock_id);
86GtkWidget *fast_menuitem(const GtkWidget *parentmenu, const gchar *label);
87GtkWidget *fast_menu_tearoff(const GtkWidget *parentmenu);
88GtkWidget *fast_menu_seperator(const GtkWidget *parentmenu);
89GdkColor *color_cairo2gdk(cairo_pattern_t *pattern);
90
91void gtk_paper_tape_set_data(GtkPaperTape* papertape, int length, byte_t *data);
92void gtk_paper_tape_set_null_bytes(GtkPaperTape *papertape, int beginning, int end);
93
94G_END_DECLS
95
96#endif /* GTK_PAPER_TAPE_H */
Note: See TracBrowser for help on using the repository browser.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License