#include <gtk/gtk.h>
static void load_css (void)
{
GtkCssProvider *provider;
GdkDisplay *display;
GdkScreen *screen;
const gchar *css_style_file = "style.css";
GFile *css_fp = g_file_new_for_path(css_style_file);
GError *error = 0;
provider = gtk_css_provider_new();
display = gdk_display_get_default();
screen = gdk_display_get_default_screen(display);
gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER(provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
gtk_css_provider_load_from_file(provider, css_fp, &error);
g_object_unref(provider);
}
gboolean user_function (GtkWidget *widget, GdkEvent *event,gpointer user_data);
static GtkWidget *createWindow(void)
{
GtkWidget *window;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//gtk_window_set_default_size(GTK_WINDOW(window), 400, 400);
gtk_widget_set_size_request(window, 400, 400);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(window), "GTK");
gtk_container_set_border_width(GTK_CONTAINER(window), 50);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
return window;
}
int main(void)
{
GtkWidget *window;
GtkWidget *label;
gtk_init(NULL, NULL);
load_css();
window = createWindow();
label = gtk_label_new(NULL);
//gtk_label_set_label(GTK_LABEL(label),"Hello Label");
gtk_label_set_text(GTK_LABEL(label), "HarmonyOS system \nwill become the most \npopular operating system");
//const gchar *ptr = gtk_label_get_label(GTK_LABEL(label));
//const gchar *ptr = gtk_label_get_text(GTK_LABEL(label));
//g_print("label text: %s\n", ptr);
// 设置文本位置
//gtk_label_set_xalign(GTK_LABEL(label), 0.10f);
//gtk_label_set_yalign(GTK_LABEL(label), 0.20f);
//const gfloat x = gtk_label_get_xalign(GTK_LABEL(label));
//const gfloat y = gtk_label_get_yalign(GTK_LABEL(label));
//g_print("label text pos: x = %f, y = %f\n", x, y);
// 设置文本方向
//gtk_label_set_angle(GTK_LABEL(label), 0);
//const gdouble angle = gtk_label_get_angle(GTK_LABEL(label));
//g_print("label text angle: %f\n", angle);
// 设置当文本过长的时候,我们调整窗口大小时,文本可以换行展示,默认模式是PANGO_WRAP_WORD
//gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
// 设置换行的模式,word or char
//gtk_label_set_line_wrap_mode(GTK_LABEL(label), PANGO_WRAP_CHAR);
// 设置文本的对齐方式
//gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
//gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER);
//gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
//gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_FILL);
// 设置文本可以选中复制
//gtk_label_set_selectable(GTK_LABEL(label), TRUE);
// 设置对应文本的下划线
//gtk_label_set_pattern(GTK_LABEL(label), "___ __");
/*
const char *str = "I am kato";
const char *format = "<span style=\"italic\">\%s</span>";
char *markup = g_markup_printf_escaped (format, str);
gtk_label_set_markup (GTK_LABEL (label), markup);
g_free (markup);
*/
gtk_container_add(GTK_CONTAINER(window), label);
gtk_widget_show_all(window);
gtk_main();
}