⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtkclock_c.html

📁 时钟程序
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<font color=#333399>}</font>

<font color=#AA0000><b>static</b></font> <font color=#AA0000><b>void</b></font>
gtk_clock_init <font color=#333399>(</font>GtkClock <font color=#333399>*</font>clock<font color=#333399>)</font>
<font color=#333399>{</font>
	<font color="#007766">/* Start the clock, refresh every 1ms */</font>
    gtk_timeout_add <font color=#333399>(</font><font color="#000000"><b>1</b></font><font color=#333399>,</font> gtk_clock_construct<font color=#333399>,</font> <font color=#333399>(</font>gpointer<font color=#333399>)</font><font color=#333399>(</font>clock<font color=#333399>)</font><font color=#333399>)</font><font color=#333399>;</font>
<font color=#333399>}</font>

<font color=#AA0000><b>static</b></font> <font color=#AA0000><b>void</b></font>
gtk_clock_destroy <font color=#333399>(</font>GtkObject <font color=#333399>*</font>object<font color=#333399>)</font>
<font color=#333399>{</font>
  parent_class<font color=#333399>-</font><font color=#333399>&gt;</font>destroy<font color=#333399>(</font>object<font color=#333399>)</font><font color=#333399>;</font>
<font color=#333399>}</font>

GtkWidget<font color=#333399>*</font>
gtk_clock_new<font color=#333399>(</font><font color=#AA0000><b>void</b></font><font color=#333399>)</font>
<font color=#333399>{</font>
  GtkWidget <font color=#333399>*</font>clock<font color=#333399>;</font>
  clock <font color=#333399>=</font> GTK_WIDGET<font color=#333399>(</font> gtk_type_new <font color=#333399>(</font> gtk_clock_get_type<font color=#333399>(</font><font color=#333399>)</font><font color=#333399>)</font><font color=#333399>)</font><font color=#333399>;</font>
  <font color=#884455><b>return</b></font> clock<font color=#333399>;</font>
<font color=#333399>}</font>

<font color=#AA0000><b>static</b></font> <font color=#AA0000><b>void</b></font> gtk_clock_size_request <font color=#333399>(</font>GtkWidget <font color=#333399>*</font>widget<font color=#333399>,</font>
                                    GtkRequisition <font color=#333399>*</font>req<font color=#333399>)</font>
<font color=#333399>{</font>
    req<font color=#333399>-</font><font color=#333399>&gt;</font>width <font color=#333399>=</font>  <font color="#000000"><b>200</b></font><font color=#333399>;</font>	<font color=#333399>/</font><font color=#333399>/</font> Default value
    req<font color=#333399>-</font><font color=#333399>&gt;</font>height <font color=#333399>=</font> <font color="#000000"><b>200</b></font><font color=#333399>;</font>	<font color=#333399>/</font><font color=#333399>/</font> Default value
<font color=#333399>}</font>

<font color=#AA0000><b>static</b></font> <font color=#AA0000><b>void</b></font> gtk_clock_realize <font color=#333399>(</font>GtkWidget <font color=#333399>*</font>widget<font color=#333399>)</font>
<font color=#333399>{</font>
	GtkClock <font color=#333399>*</font>darea<font color=#333399>;</font>
	GdkWindowAttr attributes<font color=#333399>;</font>
	gint attributes_mask<font color=#333399>;</font>

	g_return_if_fail <font color=#333399>(</font>widget <font color=#333399>!</font><font color=#333399>=</font> NULL<font color=#333399>)</font><font color=#333399>;</font>
	g_return_if_fail <font color=#333399>(</font>GTK_IS_CLOCK <font color=#333399>(</font>widget<font color=#333399>)</font><font color=#333399>)</font><font color=#333399>;</font>

	darea <font color=#333399>=</font> GTK_CLOCK <font color=#333399>(</font>widget<font color=#333399>)</font><font color=#333399>;</font>
	GTK_WIDGET_SET_FLAGS <font color=#333399>(</font>widget<font color=#333399>,</font> GTK_REALIZED<font color=#333399>)</font><font color=#333399>;</font>

	attributes<font color=#333399>.</font>window_type <font color=#333399>=</font> GDK_WINDOW_CHILD<font color=#333399>;</font>
	attributes<font color=#333399>.</font>x <font color=#333399>=</font> widget<font color=#333399>-</font><font color=#333399>&gt;</font>allocation<font color=#333399>.</font>x<font color=#333399>;</font>
	attributes<font color=#333399>.</font>y <font color=#333399>=</font> widget<font color=#333399>-</font><font color=#333399>&gt;</font>allocation<font color=#333399>.</font>y<font color=#333399>;</font>
	attributes<font color=#333399>.</font>width <font color=#333399>=</font> widget<font color=#333399>-</font><font color=#333399>&gt;</font>allocation<font color=#333399>.</font>width<font color=#333399>;</font>
	attributes<font color=#333399>.</font>height <font color=#333399>=</font> widget<font color=#333399>-</font><font color=#333399>&gt;</font>allocation<font color=#333399>.</font>height<font color=#333399>;</font>
	attributes<font color=#333399>.</font>wclass <font color=#333399>=</font> GDK_INPUT_OUTPUT<font color=#333399>;</font>
	attributes<font color=#333399>.</font>visual <font color=#333399>=</font> gtk_widget_get_visual <font color=#333399>(</font>widget<font color=#333399>)</font><font color=#333399>;</font>
	attributes<font color=#333399>.</font>colormap <font color=#333399>=</font> gtk_widget_get_colormap <font color=#333399>(</font>widget<font color=#333399>)</font><font color=#333399>;</font>
	attributes<font color=#333399>.</font>event_mask <font color=#333399>=</font> gtk_widget_get_events <font color=#333399>(</font>widget<font color=#333399>)</font> <font color=#333399>|</font> GDK_EXPOSURE_MASK<font color=#333399>;</font>

	attributes_mask <font color=#333399>=</font> GDK_WA_X <font color=#333399>|</font> GDK_WA_Y <font color=#333399>|</font> GDK_WA_VISUAL <font color=#333399>|</font> GDK_WA_COLORMAP<font color=#333399>;</font>

	widget<font color=#333399>-</font><font color=#333399>&gt;</font>window <font color=#333399>=</font> gdk_window_new <font color=#333399>(</font>gtk_widget_get_parent_window <font color=#333399>(</font>widget<font color=#333399>)</font><font color=#333399>,</font> <font color=#333399>&</font>attributes<font color=#333399>,</font> attributes_mask<font color=#333399>)</font><font color=#333399>;</font>
	gdk_window_set_user_data <font color=#333399>(</font>widget<font color=#333399>-</font><font color=#333399>&gt;</font>window<font color=#333399>,</font> darea<font color=#333399>)</font><font color=#333399>;</font>

	widget<font color=#333399>-</font><font color=#333399>&gt;</font>style <font color=#333399>=</font> gtk_style_attach <font color=#333399>(</font>widget<font color=#333399>-</font><font color=#333399>&gt;</font>style<font color=#333399>,</font> widget<font color=#333399>-</font><font color=#333399>&gt;</font>window<font color=#333399>)</font><font color=#333399>;</font>
	gtk_style_set_background <font color=#333399>(</font>widget<font color=#333399>-</font><font color=#333399>&gt;</font>style<font color=#333399>,</font> widget<font color=#333399>-</font><font color=#333399>&gt;</font>window<font color=#333399>,</font> GTK_STATE_NORMAL<font color=#333399>)</font><font color=#333399>;</font>
<font color=#333399>}</font>

gint
gtk_clock_construct <font color=#333399>(</font>gpointer data<font color=#333399>)</font>
<font color=#333399>{</font>
    GtkClock <font color=#333399>*</font>clock <font color=#333399>=</font> data<font color=#333399>;</font>
    <font color=#884455><b>if</b></font> <font color=#333399>(</font><font color=#333399>!</font>GTK_WIDGET_DRAWABLE <font color=#333399>(</font>clock<font color=#333399>)</font><font color=#333399>)</font>
        <font color=#884455><b>return</b></font> <font color="#000000"><b>0</b></font><font color=#333399>;</font>

	get_current_time <font color=#333399>(</font> <font color=#333399>&</font>clock<font color=#333399>-</font><font color=#333399>&gt;</font>hour<font color=#333399>,</font> <font color=#333399>&</font>clock<font color=#333399>-</font><font color=#333399>&gt;</font>min<font color=#333399>,</font> <font color=#333399>&</font>clock<font color=#333399>-</font><font color=#333399>&gt;</font>sec <font color=#333399>)</font><font color=#333399>;</font>
	gtk_clock_draw <font color=#333399>(</font>GTK_WIDGET<font color=#333399>(</font>clock<font color=#333399>)</font><font color=#333399>,</font> NULL<font color=#333399>)</font><font color=#333399>;</font>

    <font color=#884455><b>return</b></font> <font color="#000000"><b>1</b></font><font color=#333399>;</font>
<font color=#333399>}</font>

<font color=#AA0000><b>static</b></font> <font color=#AA0000><b>void</b></font>
gtk_clock_draw <font color=#333399>(</font>GtkWidget <font color=#333399>*</font>widget<font color=#333399>,</font> GdkRectangle <font color=#333399>*</font>area<font color=#333399>)</font>
<font color=#333399>{</font>
	GtkClock <font color=#333399>*</font>clock<font color=#333399>;</font>

	<font color=#AA0000><b>int</b></font> loop1<font color=#333399>;</font>
	<font color=#AA0000><b>int</b></font> max_radius<font color=#333399>;</font>
	<font color=#AA0000><b>int</b></font> min<font color=#333399>=</font><font color="#000000"><b>0</b></font><font color=#333399>,</font> hour<font color=#333399>=</font><font color="#000000"><b>0</b></font><font color=#333399>,</font> sec<font color=#333399>=</font><font color="#000000"><b>0</b></font><font color=#333399>;</font>
	<font color=#AA0000><b>int</b></font> yc<font color=#333399>,</font> xc<font color=#333399>;</font>
	<font color=#AA0000><b>int</b></font> alloc_width<font color=#333399>,</font> alloc_height<font color=#333399>;</font>
	GdkColor colors[<font color="#000000"><b>4</b></font>]<font color=#333399>;</font>
	GdkGC	<font color=#333399>*</font>clock_gc <font color=#333399>=</font> gdk_gc_new <font color=#333399>(</font>widget<font color=#333399>-</font><font color=#333399>&gt;</font>window<font color=#333399>)</font><font color=#333399>;</font>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -