From 26fc01e64ed7c898281698f798a360422b41866a Mon Sep 17 00:00:00 2001 From: Toshio Sekiya Date: Sun, 24 Jan 2021 16:50:52 +0900 Subject: [PATCH] Add section 20. --- .gitignore | 1 + Readme.md | 1 + gfm/sec10.md | 2 +- gfm/sec19.md | 2 +- gfm/sec20.md | 372 ++++++++++++++++++++++++++++++++++ gfm/sec3.md | 4 +- gfm/sec7.md | 2 +- image/TfeTextView.png | Bin 55309 -> 66390 bytes image/color.png | Bin 0 -> 12355 bytes lib/lib_src2md.rb | 2 +- src/color/color.gresource.xml | 6 + src/color/color.h | 3 + src/color/color.ui | 81 ++++++++ src/color/colorapplication.c | 122 +++++++++++ src/color/meson.build | 10 + src/color/tfetextview.c | 218 ++++++++++++++++++++ src/color/tfetextview.h | 29 +++ src/sec10.src.md | 2 +- src/sec19.src.md | 2 +- src/sec20.src.md | 149 ++++++++++++++ src/sec3.src.md | 4 +- src/sec7.src.md | 2 +- 22 files changed, 1003 insertions(+), 11 deletions(-) create mode 100644 gfm/sec20.md create mode 100644 image/color.png create mode 100644 src/color/color.gresource.xml create mode 100644 src/color/color.h create mode 100644 src/color/color.ui create mode 100644 src/color/colorapplication.c create mode 100644 src/color/meson.build create mode 100644 src/color/tfetextview.c create mode 100644 src/color/tfetextview.h create mode 100644 src/sec20.src.md diff --git a/.gitignore b/.gitignore index 44cf7dd..fed3b74 100755 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ src/tfe/resources.c src/tfe5/_build src/tfe5/hello.txt src/menu/a.out +src/color/_build html/* latex/* diff --git a/Readme.md b/Readme.md index a8f019f..0c83b2b 100644 --- a/Readme.md +++ b/Readme.md @@ -32,3 +32,4 @@ You can read it without download. 1. [Stateful action](gfm/sec17.md) 1. [Ui file for menu and action entries](gfm/sec18.md) 1. [GtkDrawingArea and Cairo](gfm/sec19.md) +1. [Combine GtkDrawingArea and TfeTextView](gfm/sec20.md) diff --git a/gfm/sec10.md b/gfm/sec10.md index 2f579b7..447fb85 100644 --- a/gfm/sec10.md +++ b/gfm/sec10.md @@ -5,7 +5,7 @@ Up: [Readme.md](../Readme.md), Prev: [Section 9](sec9.md), Next: [Section 11](s This section and the following four sections are explanations about the next version of the text file editor (tfe). It is tfe5. It has many changes from the prior version. -All the sources are listed after the five sections. +All the sources are listed in [Section 15](sec15.md). ## Encapsulation diff --git a/gfm/sec19.md b/gfm/sec19.md index 12b3b81..160d640 100644 --- a/gfm/sec19.md +++ b/gfm/sec19.md @@ -26,7 +26,7 @@ We can draw shapes and images with different colors on surfaces. - cairo context manages the transference from source to destination through mask with its functions. For example, `cairo_stroke` is a function to draw a path to the destination by the transference. - transformation is applied before the transfer completes. -The transformation is called affine, which is a mathematicsterminology, and represented by matrix multiplication and vector addition. +The transformation is called affine, which is a mathematics terminology, and represented by matrix multiplication and vector addition. Scaling, rotation, reflection, shearing and translation are examples of affine transformation. In this section, we don't use it. That means we only use identity transformation. diff --git a/gfm/sec20.md b/gfm/sec20.md new file mode 100644 index 0000000..7a555cc --- /dev/null +++ b/gfm/sec20.md @@ -0,0 +1,372 @@ +Up: [Readme.md](../Readme.md), Prev: [Section 19](sec19.md) + +# Combine GtkDrawingArea and TfeTextView + +Now, we will make a new application which has GtkDrawingArea and TfeTextView in it. +Its name is "color". +If you write a color in TfeTextView and click on the `run` button, then the color of GtkDrawingArea changes to the color given by you. + +![color](../image/color.png) + +The following colors are available. + +- white +- black +- red +- green +- blue + +In addition the following two options are also available. + +- light: Make the color of the drawing area lighter. +- dark: Make the color of the drawing area darker. + +This application can only do very simple things. +However, it tells us that if we add powerful parser to it, we will be able to make it more efficient. +I want to show it to you in the later section by making a turtle graphics language like Logo program language. + +In this section, we focus on how to bind the two objects. + +# Color.ui and color.gresource.xml + +First, We need to make the ui file of the widgets. +The image in the previous subsection gives us the structure of the widgets. +Title bar, four buttons in the tool bar and two widgets textview and drawing area. +The ui file is as follows. + + 1 + 2 + 3 color changer + 4 600 + 5 400 + 6 + 7 + 8 GTK_ORIENTATION_VERTICAL + 9 + 10 + 11 GTK_ORIENTATION_HORIZONTAL + 12 + 13 + 14 10 + 15 + 16 + 17 + 18 + 19 Run + 20 + 21 + 22 + 23 + 24 + 25 + 26 Open + 27 + 28 + 29 + 30 + 31 + 32 TRUE + 33 + 34 + 35 + 36 + 37 Save + 38 + 39 + 40 + 41 + 42 + 43 Close + 44 + 45 + 46 + 47 + 48 + 49 10 + 50 + 51 + 52 + 53 + 54 + 55 + 56 GTK_ORIENTATION_HORIZONTAL + 57 TRUE + 58 + 59 + 60 TRUE + 61 TRUE + 62 + 63 + 64 GTK_WRAP_WORD_CHAR + 65 + 66 + 67 + 68 + 69 + 70 + 71 TRUE + 72 TRUE + 73 + 74 + 75 + 76 + 77 + 78 + 79 + 80 + 81 + +- 9-53: This part describes the tool bar which has four buttons, `Run`, `Open`, `Save` and `Close`. +This is similar to the toolbar of tfe text editor in [Section 8](sec8.md). +There are two differences. +`Run` button replaces `New` button. +Signal element are added to each button object. +It has "name" attribute which is a signal name and "handler" attribute which is the name of its signal handler function. +Options "-WI, --export-dynamic" CFLAG is necessary when you compile the application. +You can achieve this by adding "export_dynamic: true" argument to executable function in `meson.build`. +And be careful that the handler must be defined without 'static' class. +- 54-76: Put GtkScrolledWindow and GtkDrawingArea into GtkBox. +GtkBox has "homogeneous property with TRUE value, so the two children have the same width in the box. +TfeTextView is a child of GtkScrolledWindow. + +The xml file for the resource compiler is almost same as before. +Just substitute "color" for "tfe". + + 1 + 2 + 3 + 4 color.ui + 5 + 6 + +# Tfetextview.h, tfetextview.c and color.h + +First two files are almost same as before. +The only difference is the header file in tfettextview.c. + + $ diff tfe5/tfetextview.c color/tfetextview.c + 1c1 + < #include "tfe.h" + --- + > #include "color.h" + +Color.h just includes tfetextview.h. + + 1 #include + 2 + 3 #include "tfetextview.h" + +# Colorapplication.c + +This is the main file. +It deals with: + +- Build widgets by GtkBuilder. +- Set drawing function to GtkDrawingArea. +And connect a handler to "resize" signal on GtkDrawingArea. +- Implement each call back functions. +Particularly, `Run` signal handler is the point in this program. + +The following is `colorapplication.c`. + + 1 #include "color.h" + 2 + 3 static GtkWidget *win; + 4 static GtkWidget *tv; + 5 static GtkWidget *da; + 6 + 7 static cairo_surface_t *surface = NULL; + 8 + 9 static void + 10 run (void) { + 11 GtkTextBuffer *tb = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); + 12 GtkTextIter start_iter; + 13 GtkTextIter end_iter; + 14 char *contents; + 15 cairo_t *cr; + 16 + 17 gtk_text_buffer_get_bounds (tb, &start_iter, &end_iter); + 18 contents = gtk_text_buffer_get_text (tb, &start_iter, &end_iter, FALSE); + 19 if (surface) { + 20 cr = cairo_create (surface); + 21 if (g_strcmp0 ("red", contents) == 0) + 22 cairo_set_source_rgb (cr, 1, 0, 0); + 23 else if (g_strcmp0 ("green", contents) == 0) + 24 cairo_set_source_rgb (cr, 0, 1, 0); + 25 else if (g_strcmp0 ("blue", contents) == 0) + 26 cairo_set_source_rgb (cr, 0, 0, 1); + 27 else if (g_strcmp0 ("white", contents) == 0) + 28 cairo_set_source_rgb (cr, 1, 1, 1); + 29 else if (g_strcmp0 ("black", contents) == 0) + 30 cairo_set_source_rgb (cr, 0, 0, 0); + 31 else if (g_strcmp0 ("light", contents) == 0) + 32 cairo_set_source_rgba (cr, 1, 1, 1, 0.5); + 33 else if (g_strcmp0 ("dark", contents) == 0) + 34 cairo_set_source_rgba (cr, 0, 0, 0, 0.5); + 35 else + 36 cairo_set_source_surface (cr, surface, 0, 0); + 37 cairo_paint (cr); + 38 cairo_destroy (cr); + 39 } + 40 } + 41 + 42 void + 43 run_cb (GtkWidget *btnr) { + 44 run (); + 45 gtk_widget_queue_draw (GTK_WIDGET (da)); + 46 } + 47 + 48 void + 49 open_cb (GtkWidget *btno) { + 50 tfe_text_view_open (TFE_TEXT_VIEW (tv), win); + 51 } + 52 + 53 void + 54 save_cb (GtkWidget *btns) { + 55 tfe_text_view_save (TFE_TEXT_VIEW (tv)); + 56 } + 57 + 58 void + 59 close_cb (GtkWidget *btnc) { + 60 if (surface) + 61 cairo_surface_destroy (surface); + 62 gtk_window_destroy (GTK_WINDOW (win)); + 63 } + 64 + 65 static void + 66 resize_cb (GtkDrawingArea *drawing_area, int width, int height, gpointer user_data) { + 67 if (surface) + 68 cairo_surface_destroy (surface); + 69 surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height); + 70 run (); + 71 } + 72 + 73 static void + 74 draw_func (GtkDrawingArea *drawing_area, cairo_t *cr, int width, int height, gpointer user_data) { + 75 if (surface) { + 76 cairo_set_source_surface (cr, surface, 0, 0); + 77 cairo_paint (cr); + 78 } + 79 } + 80 + 81 static void + 82 activate (GApplication *application) { + 83 gtk_widget_show (win); + 84 } + 85 + 86 static void + 87 startup (GApplication *application) { + 88 GtkApplication *app = GTK_APPLICATION (application); + 89 GtkBuilder *build; + 90 + 91 build = gtk_builder_new_from_resource ("/com/github/ToshioCP/color/color.ui"); + 92 win = GTK_WIDGET (gtk_builder_get_object (build, "win")); + 93 gtk_window_set_application (GTK_WINDOW (win), app); + 94 tv = GTK_WIDGET (gtk_builder_get_object (build, "tv")); + 95 da = GTK_WIDGET (gtk_builder_get_object (build, "da")); + 96 g_object_unref(build); + 97 g_signal_connect (GTK_DRAWING_AREA (da), "resize", G_CALLBACK (resize_cb), NULL); + 98 gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), draw_func, NULL, NULL); + 99 + 100 GdkDisplay *display; + 101 + 102 display = gtk_widget_get_display (GTK_WIDGET (win)); + 103 GtkCssProvider *provider = gtk_css_provider_new (); + 104 gtk_css_provider_load_from_data (provider, "textview {padding: 10px; font-family: monospace; font-size: 12pt;}", -1); + 105 gtk_style_context_add_provider_for_display (display, GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_USER); + 106 } + 107 + 108 int + 109 main (int argc, char **argv) { + 110 GtkApplication *app; + 111 int stat; + 112 + 113 app = gtk_application_new ("com.github.ToshioCP.color", G_APPLICATION_FLAGS_NONE); + 114 + 115 g_signal_connect (app, "startup", G_CALLBACK (startup), NULL); + 116 g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); + 117 + 118 stat =g_application_run (G_APPLICATION (app), argc, argv); + 119 g_object_unref (app); + 120 return stat; + 121 } + 122 + +- 108-121: The function `main` is almost same as before but there are some differences. +The application ID is "com.github.ToshioCP.color". +`G_APPLICATION_FLAGS_NONE` is specified so no open signal handler is necessary. +- 86-106: Startup handler. +- 91-96: Build widgets. +The pointers of the top window, TfeTextView and GtkDrawingArea objects are stored to static variables `win`, `tv` and `da` respectively. +This is because these objects are often used in handlers. +They never be rewritten so they're thread safe. +- 97: connect "resize" signal and the handler. +- 98: set the drawing function. +- 81-84: Activate handler, which just show the widgets. +- 73-79: The drawing function. +It just copy `surface` to destination. +- 65-71: Resize handler. +Re-create the surface to fit the width and height of the drawing area and paint by calling the function `run`. +- 58-63: Close handler. +It destroys `surface` if it exists. +Then it destroys the top window and quits the application. +- 48-56: Open and save handler. +They just call the corresponding functions of TfeTextView. +- 42-46: Run handler. +It calls run function to paint the surface. +After that `gtk_widget_queue_draw` is called. +This fhunction adds the widget (GtkDrawingArea) to the queue to be redrawn. +It is important to know that the drawing function is called when it is necessary. +For example, when another window is moved and uncovers part of the widget, or when the window containing it is resized. +But repaint of `surface` is not automatically notified to gtk. +Therefore, you need to call `gtk_widget_queue_draw` to redraw the widget. +- 9-40: Run function paint the surface. +First, it gets the contents of GtkTextBuffer. +Then compare it to "red", "green" and so on. +If it matches the color, then the surface is painted the color. +If it matches "light" or "dark", then the color of the surface is lightened or darkened respectively. +Alpha channel is used. + +# Meson.build + +This file is almost same as before. +An argument "export_dynamic: true" is added to executable function. + + 1 project('color', 'c') + 2 + 3 gtkdep = dependency('gtk4') + 4 + 5 gnome=import('gnome') + 6 resources = gnome.compile_resources('resources','color.gresource.xml') + 7 + 8 sourcefiles=files('colorapplication.c', 'tfetextview.c') + 9 + 10 executable('color', sourcefiles, resources, dependencies: gtkdep, export_dynamic: true) + +# Compile and execute it + +First you need to export some variables (refer to [Section 2](sec2.md)). + + $ . env.sh + +Then type the following to compile it. + + $ meson _build + $ ninja -C _build + +The application is made in `_build` directory. +Type the following to execute it. + + $ _build/color + +Type "red", "green", "blue", "white", black", "light" or "dark" in the TfeTextView. +Then, click on `Run` button. +Make sure the color of GtkDrawingArea changes. + +In this program TfeTextView is used to change the color. +You can use buttons or menus instead of textview. +Probably it is more appropriate. +Using textview is unnatural. +It is a good practice to make such application by yourself. + +Up: [Readme.md](../Readme.md), Prev: [Section 19](sec19.md) diff --git a/gfm/sec3.md b/gfm/sec3.md index e98f44e..455aa39 100644 --- a/gfm/sec3.md +++ b/gfm/sec3.md @@ -127,8 +127,8 @@ The function `g_signal_connect` has four arguments. 4. Data to pass to the handler. If no data is necessary, NULL should be given. You can find the description of each signal in API reference. -For example, "activate" signal is in GApplication subsection in GIO API reference. -The handler function is described in that subsection. +For example, "activate" signal is in GApplication section in GIO API reference. +The handler function is described in that section. In addition, `g_signal_connect` is described in GObject API reference. API reference is very important. diff --git a/gfm/sec7.md b/gfm/sec7.md index 7334e6c..22359aa 100644 --- a/gfm/sec7.md +++ b/gfm/sec7.md @@ -49,7 +49,7 @@ For example, TfeTextView has GtkTextbuffer correspods to GtkTextView inside TfeT And important thing is that TfeTextView can have a memory to keep a pointer to GFile. However, to understand the general theory about gobjects is very hard especially for beginners. -So, I will just show you the way how to write the code and avoid the theoretical side in the next section. +So, I will just show you the way how to write the code and avoid the theoretical side in the next subsection. ## How to define a child widget of GtkTextView diff --git a/image/TfeTextView.png b/image/TfeTextView.png index d8ba32b8c3716f9d137b5a6fff9de782066cbcde..086190611ff579796ae2c8af6022ac95a7e7815f 100644 GIT binary patch literal 66390 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ⅇU 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 literal 0 HcmV?d00001 diff --git a/lib/lib_src2md.rb b/lib/lib_src2md.rb index 6617756..63579a0 100644 --- a/lib/lib_src2md.rb +++ b/lib/lib_src2md.rb @@ -142,7 +142,7 @@ def change_rel_link line, src_dir, basedir p_basedir = Pathname.new basedir left = "" right = line - while right =~ /(!?\[[^\]]*\])\((.*)\)/ + while right =~ /(!?\[[^\]]*\])\(([^\)]*)\)/ left = $` right = $' name = $1 diff --git a/src/color/color.gresource.xml b/src/color/color.gresource.xml new file mode 100644 index 0000000..52a631d --- /dev/null +++ b/src/color/color.gresource.xml @@ -0,0 +1,6 @@ + + + + color.ui + + diff --git a/src/color/color.h b/src/color/color.h new file mode 100644 index 0000000..82505f7 --- /dev/null +++ b/src/color/color.h @@ -0,0 +1,3 @@ +#include + +#include "tfetextview.h" diff --git a/src/color/color.ui b/src/color/color.ui new file mode 100644 index 0000000..9417464 --- /dev/null +++ b/src/color/color.ui @@ -0,0 +1,81 @@ + + + color changer + 600 + 400 + + + GTK_ORIENTATION_VERTICAL + + + GTK_ORIENTATION_HORIZONTAL + + + 10 + + + + + Run + + + + + + + Open + + + + + + TRUE + + + + + Save + + + + + + Close + + + + + + 10 + + + + + + + GTK_ORIENTATION_HORIZONTAL + TRUE + + + TRUE + TRUE + + + GTK_WRAP_WORD_CHAR + + + + + + + TRUE + TRUE + + + + + + + + + diff --git a/src/color/colorapplication.c b/src/color/colorapplication.c new file mode 100644 index 0000000..98eff38 --- /dev/null +++ b/src/color/colorapplication.c @@ -0,0 +1,122 @@ +#include "color.h" + +static GtkWidget *win; +static GtkWidget *tv; +static GtkWidget *da; + +static cairo_surface_t *surface = NULL; + +static void +run (void) { + GtkTextBuffer *tb = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); + GtkTextIter start_iter; + GtkTextIter end_iter; + char *contents; + cairo_t *cr; + + gtk_text_buffer_get_bounds (tb, &start_iter, &end_iter); + contents = gtk_text_buffer_get_text (tb, &start_iter, &end_iter, FALSE); + if (surface) { + cr = cairo_create (surface); + if (g_strcmp0 ("red", contents) == 0) + cairo_set_source_rgb (cr, 1, 0, 0); + else if (g_strcmp0 ("green", contents) == 0) + cairo_set_source_rgb (cr, 0, 1, 0); + else if (g_strcmp0 ("blue", contents) == 0) + cairo_set_source_rgb (cr, 0, 0, 1); + else if (g_strcmp0 ("white", contents) == 0) + cairo_set_source_rgb (cr, 1, 1, 1); + else if (g_strcmp0 ("black", contents) == 0) + cairo_set_source_rgb (cr, 0, 0, 0); + else if (g_strcmp0 ("light", contents) == 0) + cairo_set_source_rgba (cr, 1, 1, 1, 0.5); + else if (g_strcmp0 ("dark", contents) == 0) + cairo_set_source_rgba (cr, 0, 0, 0, 0.5); + else + cairo_set_source_surface (cr, surface, 0, 0); + cairo_paint (cr); + cairo_destroy (cr); + } +} + +void +run_cb (GtkWidget *btnr) { + run (); + gtk_widget_queue_draw (GTK_WIDGET (da)); +} + +void +open_cb (GtkWidget *btno) { + tfe_text_view_open (TFE_TEXT_VIEW (tv), win); +} + +void +save_cb (GtkWidget *btns) { + tfe_text_view_save (TFE_TEXT_VIEW (tv)); +} + +void +close_cb (GtkWidget *btnc) { + if (surface) + cairo_surface_destroy (surface); + gtk_window_destroy (GTK_WINDOW (win)); +} + +static void +resize_cb (GtkDrawingArea *drawing_area, int width, int height, gpointer user_data) { + if (surface) + cairo_surface_destroy (surface); + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height); + run (); +} + +static void +draw_func (GtkDrawingArea *drawing_area, cairo_t *cr, int width, int height, gpointer user_data) { + if (surface) { + cairo_set_source_surface (cr, surface, 0, 0); + cairo_paint (cr); + } +} + +static void +activate (GApplication *application) { + gtk_widget_show (win); +} + +static void +startup (GApplication *application) { + GtkApplication *app = GTK_APPLICATION (application); + GtkBuilder *build; + + build = gtk_builder_new_from_resource ("/com/github/ToshioCP/color/color.ui"); + win = GTK_WIDGET (gtk_builder_get_object (build, "win")); + gtk_window_set_application (GTK_WINDOW (win), app); + tv = GTK_WIDGET (gtk_builder_get_object (build, "tv")); + da = GTK_WIDGET (gtk_builder_get_object (build, "da")); + g_object_unref(build); + g_signal_connect (GTK_DRAWING_AREA (da), "resize", G_CALLBACK (resize_cb), NULL); + gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), draw_func, NULL, NULL); + +GdkDisplay *display; + + display = gtk_widget_get_display (GTK_WIDGET (win)); + GtkCssProvider *provider = gtk_css_provider_new (); + gtk_css_provider_load_from_data (provider, "textview {padding: 10px; font-family: monospace; font-size: 12pt;}", -1); + gtk_style_context_add_provider_for_display (display, GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_USER); +} + +int +main (int argc, char **argv) { + GtkApplication *app; + int stat; + + app = gtk_application_new ("com.github.ToshioCP.color", G_APPLICATION_FLAGS_NONE); + + g_signal_connect (app, "startup", G_CALLBACK (startup), NULL); + g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); + + stat =g_application_run (G_APPLICATION (app), argc, argv); + g_object_unref (app); + return stat; +} + diff --git a/src/color/meson.build b/src/color/meson.build new file mode 100644 index 0000000..a37abe4 --- /dev/null +++ b/src/color/meson.build @@ -0,0 +1,10 @@ +project('color', 'c') + +gtkdep = dependency('gtk4') + +gnome=import('gnome') +resources = gnome.compile_resources('resources','color.gresource.xml') + +sourcefiles=files('colorapplication.c', 'tfetextview.c') + +executable('color', sourcefiles, resources, dependencies: gtkdep, export_dynamic: true) diff --git a/src/color/tfetextview.c b/src/color/tfetextview.c new file mode 100644 index 0000000..9342a26 --- /dev/null +++ b/src/color/tfetextview.c @@ -0,0 +1,218 @@ +#include "color.h" + +struct _TfeTextView +{ + GtkTextView parent; + GFile *file; +}; + +G_DEFINE_TYPE (TfeTextView, tfe_text_view, GTK_TYPE_TEXT_VIEW); + +enum { + CHANGE_FILE, + OPEN_RESPONSE, + NUMBER_OF_SIGNALS +}; + +static guint tfe_text_view_signals[NUMBER_OF_SIGNALS]; + +static void +tfe_text_view_dispose (GObject *gobject) { + TfeTextView *tv = TFE_TEXT_VIEW (gobject); + + if (G_IS_FILE (tv->file)) + g_clear_object (&tv->file); + + G_OBJECT_CLASS (tfe_text_view_parent_class)->dispose (gobject); +} + +static void +tfe_text_view_init (TfeTextView *tv) { + GtkTextBuffer *tb = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); + + tv->file = NULL; + gtk_text_buffer_set_modified (tb, FALSE); + gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (tv), GTK_WRAP_WORD_CHAR); +} + +static void +tfe_text_view_class_init (TfeTextViewClass *class) { + GObjectClass *object_class = G_OBJECT_CLASS (class); + + object_class->dispose = tfe_text_view_dispose; + tfe_text_view_signals[CHANGE_FILE] = g_signal_newv ("change-file", + G_TYPE_FROM_CLASS (class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + NULL /* closure */, + NULL /* accumulator */, + NULL /* accumulator data */, + NULL /* C marshaller */, + G_TYPE_NONE /* return_type */, + 0 /* n_params */, + NULL /* param_types */); + GType param_types[] = {G_TYPE_INT}; + tfe_text_view_signals[OPEN_RESPONSE] = g_signal_newv ("open-response", + G_TYPE_FROM_CLASS (class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + NULL /* closure */, + NULL /* accumulator */, + NULL /* accumulator data */, + NULL /* C marshaller */, + G_TYPE_NONE /* return_type */, + 1 /* n_params */, + param_types); +} + +GFile * +tfe_text_view_get_file (TfeTextView *tv) { + g_return_val_if_fail (TFE_IS_TEXT_VIEW (tv), NULL); + + return g_file_dup (tv->file); +} + +static void +open_dialog_response(GtkWidget *dialog, gint response, TfeTextView *tv) { + GtkTextBuffer *tb = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); + GFile *file; + char *contents; + gsize length; + GtkWidget *message_dialog; + GError *err = NULL; + + if (response != GTK_RESPONSE_ACCEPT) + g_signal_emit (tv, tfe_text_view_signals[OPEN_RESPONSE], 0, TFE_OPEN_RESPONSE_CANCEL); + else if (! G_IS_FILE (file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog)))) + g_signal_emit (tv, tfe_text_view_signals[OPEN_RESPONSE], 0, TFE_OPEN_RESPONSE_ERROR); + else if (! g_file_load_contents (file, NULL, &contents, &length, NULL, &err)) { /* read error */ + if (G_IS_FILE (file)) + g_object_unref (file); + message_dialog = gtk_message_dialog_new (GTK_WINDOW (dialog), GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, + "%s.\n", err->message); + g_signal_connect (message_dialog, "response", G_CALLBACK (gtk_window_destroy), NULL); + gtk_widget_show (message_dialog); + g_error_free (err); + g_signal_emit (tv, tfe_text_view_signals[OPEN_RESPONSE], 0, TFE_OPEN_RESPONSE_ERROR); + } else { + gtk_text_buffer_set_text (tb, contents, length); + g_free (contents); + if (G_IS_FILE (tv->file)) + g_object_unref (tv->file); + tv->file = file; + gtk_text_buffer_set_modified (tb, FALSE); + g_signal_emit (tv, tfe_text_view_signals[OPEN_RESPONSE], 0, TFE_OPEN_RESPONSE_SUCCESS); + } + gtk_window_destroy (GTK_WINDOW (dialog)); +} + +void +tfe_text_view_open (TfeTextView *tv, GtkWidget *win) { + g_return_if_fail (TFE_IS_TEXT_VIEW (tv)); + g_return_if_fail (GTK_IS_WINDOW (win)); + + GtkWidget *dialog; + + dialog = gtk_file_chooser_dialog_new ("Open file", GTK_WINDOW (win), GTK_FILE_CHOOSER_ACTION_OPEN, + "Cancel", GTK_RESPONSE_CANCEL, + "Open", GTK_RESPONSE_ACCEPT, + NULL); + g_signal_connect (dialog, "response", G_CALLBACK (open_dialog_response), tv); + gtk_widget_show (dialog); +} + +static void +saveas_dialog_response (GtkWidget *dialog, gint response, TfeTextView *tv) { + GtkTextBuffer *tb = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); + GFile *file; + + if (response == GTK_RESPONSE_ACCEPT) { + file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog)); + if (G_IS_FILE(file)) { + tv->file = file; + gtk_text_buffer_set_modified (tb, TRUE); + g_signal_emit (tv, tfe_text_view_signals[CHANGE_FILE], 0); + tfe_text_view_save (TFE_TEXT_VIEW (tv)); + } + } + gtk_window_destroy (GTK_WINDOW (dialog)); +} + +void +tfe_text_view_save (TfeTextView *tv) { + g_return_if_fail (TFE_IS_TEXT_VIEW (tv)); + + GtkTextBuffer *tb = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); + GtkTextIter start_iter; + GtkTextIter end_iter; + gchar *contents; + GtkWidget *message_dialog; + GtkWidget *win = gtk_widget_get_ancestor (GTK_WIDGET (tv), GTK_TYPE_WINDOW); + GError *err = NULL; + + if (! gtk_text_buffer_get_modified (tb)) + return; /* no necessary to save it */ + else if (tv->file == NULL) + tfe_text_view_saveas (tv); + else { + gtk_text_buffer_get_bounds (tb, &start_iter, &end_iter); + contents = gtk_text_buffer_get_text (tb, &start_iter, &end_iter, FALSE); + if (g_file_replace_contents (tv->file, contents, strlen (contents), NULL, TRUE, G_FILE_CREATE_NONE, NULL, NULL, &err)) + gtk_text_buffer_set_modified (tb, FALSE); + else { +/* It is possible that tv->file is broken. */ +/* It is a good idea to set tv->file to NULL. */ + if (G_IS_FILE (tv->file)) + g_object_unref (tv->file); + tv->file =NULL; + g_signal_emit (tv, tfe_text_view_signals[CHANGE_FILE], 0); + gtk_text_buffer_set_modified (tb, TRUE); + message_dialog = gtk_message_dialog_new (GTK_WINDOW (win), GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, + "%s.\n", err->message); + g_signal_connect (message_dialog, "response", G_CALLBACK (gtk_window_destroy), NULL); + gtk_widget_show (message_dialog); + g_error_free (err); + } + } +} + +void +tfe_text_view_saveas (TfeTextView *tv) { + g_return_if_fail (TFE_IS_TEXT_VIEW (tv)); + + GtkWidget *dialog; + GtkWidget *win = gtk_widget_get_ancestor (GTK_WIDGET (tv), GTK_TYPE_WINDOW); + + dialog = gtk_file_chooser_dialog_new ("Save file", GTK_WINDOW (win), GTK_FILE_CHOOSER_ACTION_SAVE, + "_Cancel", GTK_RESPONSE_CANCEL, + "_Save", GTK_RESPONSE_ACCEPT, + NULL); + g_signal_connect (dialog, "response", G_CALLBACK (saveas_dialog_response), tv); + gtk_widget_show (dialog); +} + +GtkWidget * +tfe_text_view_new_with_file (GFile *file) { + g_return_val_if_fail (G_IS_FILE (file), NULL); + + GtkWidget *tv; + GtkTextBuffer *tb; + char *contents; + gsize length; + + if (! g_file_load_contents (file, NULL, &contents, &length, NULL, NULL)) /* read error */ + return NULL; + + tv = tfe_text_view_new(); + tb = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); + gtk_text_buffer_set_text (tb, contents, length); + g_free (contents); + TFE_TEXT_VIEW (tv)->file = g_file_dup (file); + return tv; +} + +GtkWidget * +tfe_text_view_new (void) { + return GTK_WIDGET (g_object_new (TFE_TYPE_TEXT_VIEW, NULL)); +} + diff --git a/src/color/tfetextview.h b/src/color/tfetextview.h new file mode 100644 index 0000000..7849da5 --- /dev/null +++ b/src/color/tfetextview.h @@ -0,0 +1,29 @@ +#define TFE_TYPE_TEXT_VIEW tfe_text_view_get_type () +G_DECLARE_FINAL_TYPE (TfeTextView, tfe_text_view, TFE, TEXT_VIEW, GtkTextView) + +/* "open-response" signal response */ +enum +{ + TFE_OPEN_RESPONSE_SUCCESS, + TFE_OPEN_RESPONSE_CANCEL, + TFE_OPEN_RESPONSE_ERROR +}; + +GFile * +tfe_text_view_get_file (TfeTextView *tv); + +void +tfe_text_view_open (TfeTextView *tv, GtkWidget *win); + +void +tfe_text_view_save (TfeTextView *tv); + +void +tfe_text_view_saveas (TfeTextView *tv); + +GtkWidget * +tfe_text_view_new_with_file (GFile *file); + +GtkWidget * +tfe_text_view_new (void); + diff --git a/src/sec10.src.md b/src/sec10.src.md index 279f9da..5fed4ef 100644 --- a/src/sec10.src.md +++ b/src/sec10.src.md @@ -3,7 +3,7 @@ This section and the following four sections are explanations about the next version of the text file editor (tfe). It is tfe5. It has many changes from the prior version. -All the sources are listed after the five sections. +All the sources are listed in [Section 15](sec15.src.md). ## Encapsulation diff --git a/src/sec19.src.md b/src/sec19.src.md index f8eb8c3..8e5e012 100644 --- a/src/sec19.src.md +++ b/src/sec19.src.md @@ -24,7 +24,7 @@ We can draw shapes and images with different colors on surfaces. - cairo context manages the transference from source to destination through mask with its functions. For example, `cairo_stroke` is a function to draw a path to the destination by the transference. - transformation is applied before the transfer completes. -The transformation is called affine, which is a mathematicsterminology, and represented by matrix multiplication and vector addition. +The transformation is called affine, which is a mathematics terminology, and represented by matrix multiplication and vector addition. Scaling, rotation, reflection, shearing and translation are examples of affine transformation. In this section, we don't use it. That means we only use identity transformation. diff --git a/src/sec20.src.md b/src/sec20.src.md new file mode 100644 index 0000000..738917b --- /dev/null +++ b/src/sec20.src.md @@ -0,0 +1,149 @@ +# Combine GtkDrawingArea and TfeTextView + +Now, we will make a new application which has GtkDrawingArea and TfeTextView in it. +Its name is "color". +If you write a color in TfeTextView and click on the `run` button, then the color of GtkDrawingArea changes to the color given by you. + +![color](../image/color.png) + +The following colors are available. + +- white +- black +- red +- green +- blue + +In addition the following two options are also available. + +- light: Make the color of the drawing area lighter. +- dark: Make the color of the drawing area darker. + +This application can only do very simple things. +However, it tells us that if we add powerful parser to it, we will be able to make it more efficient. +I want to show it to you in the later section by making a turtle graphics language like Logo program language. + +In this section, we focus on how to bind the two objects. + +# Color.ui and color.gresource.xml + +First, We need to make the ui file of the widgets. +The image in the previous subsection gives us the structure of the widgets. +Title bar, four buttons in the tool bar and two widgets textview and drawing area. +The ui file is as follows. + +@@@ color/color.ui + +- 9-53: This part describes the tool bar which has four buttons, `Run`, `Open`, `Save` and `Close`. +This is similar to the toolbar of tfe text editor in [Section 8](sec8.src.md). +There are two differences. +`Run` button replaces `New` button. +Signal element are added to each button object. +It has "name" attribute which is a signal name and "handler" attribute which is the name of its signal handler function. +Options "-WI, --export-dynamic" CFLAG is necessary when you compile the application. +You can achieve this by adding "export_dynamic: true" argument to executable function in `meson.build`. +And be careful that the handler must be defined without 'static' class. +- 54-76: Put GtkScrolledWindow and GtkDrawingArea into GtkBox. +GtkBox has "homogeneous property with TRUE value, so the two children have the same width in the box. +TfeTextView is a child of GtkScrolledWindow. + +The xml file for the resource compiler is almost same as before. +Just substitute "color" for "tfe". + +@@@ color/color.gresource.xml + +# Tfetextview.h, tfetextview.c and color.h + +First two files are almost same as before. +The only difference is the header file in tfettextview.c. + +$$$ +diff tfe5/tfetextview.c color/tfetextview.c +$$$ + +Color.h just includes tfetextview.h. + +@@@ color/color.h + +# Colorapplication.c + +This is the main file. +It deals with: + +- Build widgets by GtkBuilder. +- Set drawing function to GtkDrawingArea. +And connect a handler to "resize" signal on GtkDrawingArea. +- Implement each call back functions. +Particularly, `Run` signal handler is the point in this program. + +The following is `colorapplication.c`. + +@@@ color/colorapplication.c + +- 108-121: The function `main` is almost same as before but there are some differences. +The application ID is "com.github.ToshioCP.color". +`G_APPLICATION_FLAGS_NONE` is specified so no open signal handler is necessary. +- 86-106: Startup handler. +- 91-96: Build widgets. +The pointers of the top window, TfeTextView and GtkDrawingArea objects are stored to static variables `win`, `tv` and `da` respectively. +This is because these objects are often used in handlers. +They never be rewritten so they're thread safe. +- 97: connect "resize" signal and the handler. +- 98: set the drawing function. +- 81-84: Activate handler, which just show the widgets. +- 73-79: The drawing function. +It just copy `surface` to destination. +- 65-71: Resize handler. +Re-create the surface to fit the width and height of the drawing area and paint by calling the function `run`. +- 58-63: Close handler. +It destroys `surface` if it exists. +Then it destroys the top window and quits the application. +- 48-56: Open and save handler. +They just call the corresponding functions of TfeTextView. +- 42-46: Run handler. +It calls run function to paint the surface. +After that `gtk_widget_queue_draw` is called. +This fhunction adds the widget (GtkDrawingArea) to the queue to be redrawn. +It is important to know that the drawing function is called when it is necessary. +For example, when another window is moved and uncovers part of the widget, or when the window containing it is resized. +But repaint of `surface` is not automatically notified to gtk. +Therefore, you need to call `gtk_widget_queue_draw` to redraw the widget. +- 9-40: Run function paint the surface. +First, it gets the contents of GtkTextBuffer. +Then compare it to "red", "green" and so on. +If it matches the color, then the surface is painted the color. +If it matches "light" or "dark", then the color of the surface is lightened or darkened respectively. +Alpha channel is used. + +# Meson.build + +This file is almost same as before. +An argument "export_dynamic: true" is added to executable function. + +@@@ color/meson.build + +# Compile and execute it + +First you need to export some variables (refer to [Section 2](sec2.src.md)). + + $ . env.sh + +Then type the following to compile it. + + $ meson _build + $ ninja -C _build + +The application is made in `_build` directory. +Type the following to execute it. + + $ _build/color + +Type "red", "green", "blue", "white", black", "light" or "dark" in the TfeTextView. +Then, click on `Run` button. +Make sure the color of GtkDrawingArea changes. + +In this program TfeTextView is used to change the color. +You can use buttons or menus instead of textview. +Probably it is more appropriate. +Using textview is unnatural. +It is a good practice to make such application by yourself. diff --git a/src/sec3.src.md b/src/sec3.src.md index bdef097..acdd9cf 100644 --- a/src/sec3.src.md +++ b/src/sec3.src.md @@ -95,8 +95,8 @@ The function `g_signal_connect` has four arguments. 4. Data to pass to the handler. If no data is necessary, NULL should be given. You can find the description of each signal in API reference. -For example, "activate" signal is in GApplication subsection in GIO API reference. -The handler function is described in that subsection. +For example, "activate" signal is in GApplication section in GIO API reference. +The handler function is described in that section. In addition, `g_signal_connect` is described in GObject API reference. API reference is very important. diff --git a/src/sec7.src.md b/src/sec7.src.md index 4e47fde..7e72b43 100644 --- a/src/sec7.src.md +++ b/src/sec7.src.md @@ -47,7 +47,7 @@ For example, TfeTextView has GtkTextbuffer correspods to GtkTextView inside TfeT And important thing is that TfeTextView can have a memory to keep a pointer to GFile. However, to understand the general theory about gobjects is very hard especially for beginners. -So, I will just show you the way how to write the code and avoid the theoretical side in the next section. +So, I will just show you the way how to write the code and avoid the theoretical side in the next subsection. ## How to define a child widget of GtkTextView