This commit is contained in:
daleclack 2022-01-09 22:47:53 +08:00
parent b74138df04
commit 6c501e9108
6 changed files with 77 additions and 3 deletions

View File

@ -27,7 +27,8 @@ set(RESOURCE_LIST
flos.png flos.png
menubar.xml menubar.xml
style.css style.css
reset.css) reset.css
dock.ui)
compile_gresources(RESOURCE_FILE compile_gresources(RESOURCE_FILE
XML_OUT XML_OUT
@ -41,7 +42,7 @@ compile_gresources(RESOURCE_FILE
add_custom_target(resource ALL DEPENDS ${RESOURCE_FILE}) add_custom_target(resource ALL DEPENDS ${RESOURCE_FILE})
#SOURCE FILES LIST #SOURCE FILES LIST
set(SOURCES src/core/main.cpp src/core/MainWin.cpp) set(SOURCES src/core/main.cpp src/core/MainWin.cpp src/core/MyDock.cpp)
#For win32 platform,use rc resource and .ico icon #For win32 platform,use rc resource and .ico icon
if(WIN32) if(WIN32)

42
Flos_Gtk4/res/dock.ui Normal file
View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<object class="GtkBox" id="main_dock">
<!-- <property name="homogeneous">1</property> -->
<child>
<object class="GtkLabel">
<property name="label"> </property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="has-frame">0</property>
<child>
<object class="GtkImage" id="image1">
<property name="icon-name">vlc</property>
<property name="pixel-size">48</property>
</object>
</child>
</object>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkLabel">
<property name="label"> </property>
</object>
</child>
</object>
</interface>

View File

@ -8,5 +8,9 @@
/*Style for menubar*/ /*Style for menubar*/
menubar{ menubar{
background-color:#FFFA; background-color: alpha(white,0.7);
}
box{
background-color: alpha(white,0.7);
} }

View File

@ -1,4 +1,5 @@
#include "MainWin.h" #include "MainWin.h"
#include "MyDock.h"
#include <ctime> #include <ctime>
struct _MainWin struct _MainWin
@ -23,6 +24,8 @@ static gboolean label_timer(gpointer data)
sprintf(buf, "%d:%d %d/%d/%d", local->tm_hour, sprintf(buf, "%d:%d %d/%d/%d", local->tm_hour,
local->tm_min, local->tm_year + 1900, local->tm_mon + 1, local->tm_mday); local->tm_min, local->tm_year + 1900, local->tm_mon + 1, local->tm_mday);
gtk_label_set_label(GTK_LABEL(data), buf); gtk_label_set_label(GTK_LABEL(data), buf);
return TRUE;
} }
static void main_win_init(MainWin *win) static void main_win_init(MainWin *win)
@ -71,6 +74,9 @@ static void main_win_init(MainWin *win)
gtk_widget_set_margin_top(time_label, 3); gtk_widget_set_margin_top(time_label, 3);
gtk_overlay_add_overlay(GTK_OVERLAY(win->overlay), time_label); gtk_overlay_add_overlay(GTK_OVERLAY(win->overlay), time_label);
//Add a dock
add_dock(win->overlay, provider);
// Add widgets // Add widgets
gtk_overlay_set_child(GTK_OVERLAY(win->overlay), win->background); gtk_overlay_set_child(GTK_OVERLAY(win->overlay), win->background);
gtk_window_set_child(GTK_WINDOW(win), win->overlay); gtk_window_set_child(GTK_WINDOW(win), win->overlay);

View File

@ -0,0 +1,16 @@
#include "MyDock.h"
void add_dock(GtkWidget * overlay, GtkStyleProvider * provider){
GtkWidget * dock_box;
//Get Widget
GtkBuilder * builder = gtk_builder_new_from_resource("/org/gtk/daleclack/dock.ui");
dock_box = (GtkWidget*)gtk_builder_get_object(builder,"main_dock");
//Put the dock on the overlay
gtk_widget_set_halign(dock_box,GTK_ALIGN_CENTER);
gtk_widget_set_valign(dock_box,GTK_ALIGN_END);
gtk_overlay_add_overlay(GTK_OVERLAY(overlay),dock_box);
//Set Style
gtk_style_context_add_provider(gtk_widget_get_style_context(dock_box), provider, G_MAXINT);
}

View File

@ -0,0 +1,5 @@
#pragma once
#include <gtk/gtk.h>
void add_dock(GtkWidget * overlay, GtkStyleProvider * provider);