156 lines
5.5 KiB
Plaintext
156 lines
5.5 KiB
Plaintext
$OpenBSD: patch-wmclockmon-cal_mainwindow_c,v 1.1 2010/03/23 22:12:39 jasper Exp $
|
|
|
|
Switch to gtk+2:
|
|
- Remove call to deprecated function.
|
|
|
|
--- wmclockmon-cal/mainwindow.c.orig Mon May 31 10:15:18 2004
|
|
+++ wmclockmon-cal/mainwindow.c Tue Mar 23 23:11:30 2010
|
|
@@ -51,7 +51,6 @@ static void show_editor() {
|
|
gtk_widget_hide(calendar);
|
|
gtk_widget_hide(closewindow);
|
|
gtk_widget_grab_default(GTK_WIDGET(cancel));
|
|
- gtk_widget_draw_default(GTK_WIDGET(cancel));
|
|
gtk_widget_grab_focus(GTK_WIDGET(edit));
|
|
gtk_widget_show(text_buttons);
|
|
gtk_widget_show(edit);
|
|
@@ -69,7 +68,6 @@ static void hide_editor() {
|
|
gtk_widget_hide(cancel);
|
|
gtk_widget_show(calendar);
|
|
gtk_widget_grab_default(GTK_WIDGET(closewindow));
|
|
- gtk_widget_draw_default(GTK_WIDGET(closewindow));
|
|
gtk_widget_grab_focus(GTK_WIDGET(closewindow));
|
|
gtk_widget_show(closewindow);
|
|
}
|
|
@@ -93,13 +91,20 @@ static void load_file(const char *datestr) {
|
|
FILE *file;
|
|
char *filename = get_file(datestr);
|
|
|
|
+ GtkTextIter iter;
|
|
+ GtkTextBuffer *buf;
|
|
+
|
|
+ buf = GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(edit)));
|
|
+ gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(edit))), &iter);
|
|
+ gtk_text_buffer_place_cursor(GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(edit))), &iter);
|
|
+
|
|
if ((file = fopen(filename, "r")) != NULL) {
|
|
while (! feof(file)) {
|
|
char line[MAXSTRLEN + 1];
|
|
bzero(line, MAXSTRLEN + 1);
|
|
fgets(line, MAXSTRLEN, file);
|
|
if (line[0] != 0)
|
|
- gtk_text_insert(GTK_TEXT(edit), NULL, NULL, NULL, line, -1);
|
|
+ gtk_text_buffer_insert(buf, &iter, line, -1);
|
|
}
|
|
fclose(file);
|
|
}
|
|
@@ -152,23 +157,14 @@ static void set_buttons_text() {
|
|
gtk_label_set_text(GTK_LABEL(label_m), datestr);
|
|
}
|
|
|
|
-
|
|
static void editor_flush() {
|
|
- int cont = TRUE;
|
|
-
|
|
- while (cont) {
|
|
- cont = gtk_text_backward_delete(GTK_TEXT(edit), 1);
|
|
- }
|
|
- cont = TRUE;
|
|
- while (cont) {
|
|
- cont = gtk_text_forward_delete(GTK_TEXT(edit), 1);
|
|
- }
|
|
+ gtk_text_buffer_set_text(GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(edit))), "", 0);
|
|
}
|
|
|
|
-
|
|
static void editor_fill(int which) {
|
|
char *filename, *dstr;
|
|
- GtkWidget *label;
|
|
+ GtkWidget *label = NULL;
|
|
+ GtkTextIter iter;
|
|
|
|
switch (which) {
|
|
case UNIQUE: label = label_u; break;
|
|
@@ -179,11 +175,10 @@ static void editor_fill(int which) {
|
|
gtk_label_get(GTK_LABEL(label), &dstr);
|
|
strcpy(daystr, dstr);
|
|
to_button(which);
|
|
- gtk_text_freeze(GTK_TEXT(edit));
|
|
editor_flush();
|
|
load_file(daystr);
|
|
- gtk_text_set_point(GTK_TEXT(edit), gtk_text_get_length(GTK_TEXT(edit)));
|
|
- gtk_text_thaw(GTK_TEXT(edit));
|
|
+ gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(edit))), &iter);
|
|
+ gtk_text_buffer_place_cursor(GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(edit))), &iter);
|
|
}
|
|
|
|
|
|
@@ -225,8 +220,15 @@ static void save_datas() {
|
|
char *dirname = xmalloc(len + 2);
|
|
struct stat stat_buf;
|
|
|
|
+ GtkTextIter ts, te;
|
|
+ gchar *tbuf;
|
|
+ int tlen;
|
|
+
|
|
+ tlen = gtk_text_buffer_get_char_count(GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(edit))));
|
|
+ gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(edit))), &ts, &te);
|
|
+
|
|
sprintf(dirname, "%s/%s", robust_home(), DEFAULT_CONFIGDIR);
|
|
- if (gtk_text_get_length(GTK_TEXT(edit)) > 0) {
|
|
+ if (tlen > 0) {
|
|
if (! ((stat(dirname, &stat_buf) == 0) && S_ISDIR(stat_buf.st_mode)))
|
|
mkdir(dirname, 0755);
|
|
|
|
@@ -235,13 +237,11 @@ static void save_datas() {
|
|
int year, month, day;
|
|
|
|
if (file) {
|
|
- int i;
|
|
- for (i = 0 ; i < gtk_text_get_length(GTK_TEXT(edit)) ; i++) {
|
|
- char t = GTK_TEXT_INDEX(GTK_TEXT(edit), i);
|
|
- fprintf(file, "%c", t);
|
|
- }
|
|
- fflush(file);
|
|
- fclose(file);
|
|
+ tbuf = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(edit))), &ts, &te, TRUE);
|
|
+ fprintf(file, "%s", tbuf);
|
|
+ g_free(tbuf);
|
|
+ fflush(file);
|
|
+ fclose(file);
|
|
}
|
|
gtk_calendar_get_date(GTK_CALENDAR(calendar), &year, &month, &day);
|
|
gtk_calendar_mark_day(GTK_CALENDAR(calendar), day);
|
|
@@ -259,9 +259,7 @@ static void delete_file() {
|
|
gtk_calendar_get_date(GTK_CALENDAR(calendar), &year, &month, &day);
|
|
gtk_calendar_unmark_day(GTK_CALENDAR(calendar), day);
|
|
FREE(filename);
|
|
- gtk_text_freeze(GTK_TEXT(edit));
|
|
editor_flush();
|
|
- gtk_text_thaw(GTK_TEXT(edit));
|
|
}
|
|
|
|
|
|
@@ -357,10 +355,10 @@ void create_mainwindow() {
|
|
GTK_SIGNAL_FUNC(mark_days), NULL);
|
|
gtk_widget_show(calendar);
|
|
|
|
- edit = gtk_text_new(NULL, NULL);
|
|
- gtk_text_set_editable(GTK_TEXT(edit), TRUE);
|
|
- gtk_text_set_word_wrap(GTK_TEXT(edit), TRUE);
|
|
- gtk_text_set_line_wrap(GTK_TEXT(edit), TRUE);
|
|
+ edit = gtk_text_view_new();
|
|
+ gtk_text_view_set_editable(GTK_TEXT_VIEW(edit), TRUE);
|
|
+ gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(edit), GTK_WRAP_WORD_CHAR);
|
|
+
|
|
gtk_box_pack_start(GTK_BOX(main_vbox), edit, TRUE, TRUE, 1);
|
|
|
|
|
|
@@ -413,7 +411,6 @@ void create_mainwindow() {
|
|
gtk_box_pack_start(GTK_BOX(buttons_hbox), closewindow, TRUE, TRUE, 0);
|
|
GTK_WIDGET_SET_FLAGS(GTK_WIDGET(closewindow), GTK_CAN_DEFAULT);
|
|
gtk_widget_grab_default(GTK_WIDGET(closewindow));
|
|
- gtk_widget_draw_default(GTK_WIDGET(closewindow));
|
|
gtk_widget_show(closewindow);
|
|
|
|
|