From 8b20ac04616642932aee94ca517f8ec33ce6c2c0 Mon Sep 17 00:00:00 2001 From: Makise Kurisu Date: Mon, 7 Sep 2015 18:37:29 +0200 Subject: [PATCH] Initial commit --- .gitignore | 2 + CMakeLists.txt | 19 +++ glade/mainWindow.glade | 325 ++++++++++++++++++++++++++++++++++++ glade/previewWidget.glade | 52 ++++++ glade/tagItemViewport.glade | 59 +++++++ main.c | 56 +++++++ previewwidget.c | 56 +++++++ previewwidget.h | 32 ++++ 8 files changed, 601 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 glade/mainWindow.glade create mode 100644 glade/previewWidget.glade create mode 100644 glade/tagItemViewport.glade create mode 100644 main.c create mode 100644 previewwidget.c create mode 100644 previewwidget.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..86a9ce7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.user +*~ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..e1e3026 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,19 @@ +project(konaclient-gtk) + +cmake_minimum_required(VERSION 2.8) +aux_source_directory(. SRC_LIST) + +# Use the package PkgConfig to detect GTK+ headers/library files +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK3 REQUIRED gtk+-3.0) +# Setup CMake to use GTK+, tell the compiler where to look for headers +# and to the linker where to look for libraries +include_directories(${GTK3_INCLUDE_DIRS}) +link_directories(${GTK3_LIBRARY_DIRS}) +# Add other flags to the compiler +add_definitions(${GTK3_CFLAGS_OTHER}) + +add_executable(${PROJECT_NAME} ${SRC_LIST}) + +# Link the target to the GTK+ libraries +target_link_libraries(${PROJECT_NAME} ${GTK3_LIBRARIES}) diff --git a/glade/mainWindow.glade b/glade/mainWindow.glade new file mode 100644 index 0000000..b97c0f1 --- /dev/null +++ b/glade/mainWindow.glade @@ -0,0 +1,325 @@ + + + + + + + 640 + 360 + False + KonaClient + konaclient + + + + True + False + vertical + + + True + True + 2 + 2 + True + + + True + False + vertical + 8 + + + True + True + True + + + True + False + vertical + 8 + + + True + True + edit-find-symbolic + False + False + searchCompletion + + + False + True + 0 + + + + + True + False + 8 + True + + + Posts + True + True + True + + + + False + True + 0 + + + + + Pools + True + True + True + + + + False + True + 1 + + + + + False + True + 1 + + + + + + + True + False + Search + 0.01 + + + + + False + True + 0 + + + + + True + True + True + + + True + False + vertical + 8 + + + True + False + 8 + + + True + False + Jump to page: + + + False + True + 0 + + + + + True + True + + + True + True + 1 + + + + + True + True + 0 + + + + + Go! + True + True + True + + + + False + True + 1 + + + + + + + True + False + Navigation + + + + + False + True + 1 + + + + + True + True + True + + + True + True + 100 + + + True + False + none + + + True + False + vertical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + False + Tags + + + + + True + True + 2 + + + + + False + True + + + + + 0 + True + True + + + True + False + none + + + + + + + + True + False + + + + + True + True + 1 + + + + + True + False + 1 + + + False + True + 1 + + + + + + diff --git a/glade/previewWidget.glade b/glade/previewWidget.glade new file mode 100644 index 0000000..297b4cb --- /dev/null +++ b/glade/previewWidget.glade @@ -0,0 +1,52 @@ + + + + + + True + False + vertical + + + 200 + 150 + False + applications-graphics + True + + + True + True + 0 + + + + + 200 + 150 + True + False + True + + + False + True + 1 + + + + + Download @ 0000 x 0000 + True + True + True + + + + False + True + 2 + + + + diff --git a/glade/tagItemViewport.glade b/glade/tagItemViewport.glade new file mode 100644 index 0000000..0ff5c12 --- /dev/null +++ b/glade/tagItemViewport.glade @@ -0,0 +1,59 @@ + + + + + + True + False + none + + + True + False + + + True + False + <a href="">+</a> + True + box1 + + + + False + True + 0 + + + + + True + True + <a href="">tag_name</a> + True + box1 + + + False + True + 1 + + + + + True + False + center + 4 + (#####) + + + False + True + 2 + + + + + + diff --git a/main.c b/main.c new file mode 100644 index 0000000..12c73d8 --- /dev/null +++ b/main.c @@ -0,0 +1,56 @@ +#include +#include "previewwidget.h" + +int buildWindow(); + +int buildWindow() { + GtkWindow *mainWindow; + GtkBuilder *builder; + + GtkWidget *previewLayout; + GtkWidget *previewContainer; + GtkWidget *temp; + + builder = gtk_builder_new(); + gtk_builder_add_from_file(builder, "glade/mainWindow.glade", NULL); + + mainWindow = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(builder), "mainWindow")); + gtk_builder_connect_signals(builder, NULL); + + previewContainer = gtk_builder_get_object(GTK_BUILDER(builder), "viewportPreview"); + + previewLayout = gtk_flow_box_new(); + gtk_flow_box_set_max_children_per_line(GTK_FLOW_BOX(previewLayout), 200); + for (int i = 0; i < 100; ++i) { + // CUSTOM!!!!! + temp = PreviewWidget_new(); + gtk_flow_box_insert(GTK_FLOW_BOX(previewLayout),temp,0); + gtk_widget_show(temp); + // ------------------- + } + + + + + gtk_widget_show(previewLayout); + gtk_container_add(GTK_CONTAINER(previewContainer), previewLayout); + + g_object_unref(G_OBJECT(builder)); + + + gtk_widget_show(GTK_WIDGET(mainWindow)); +} + +int main(int argc, char **argv) +{ + gtk_init(&argc, &argv); + + buildWindow(); + + gtk_main(); + return 0; +} + + + +// REMEBER THIS FUNCTION: g_clear_object () diff --git a/previewwidget.c b/previewwidget.c new file mode 100644 index 0000000..68edfd2 --- /dev/null +++ b/previewwidget.c @@ -0,0 +1,56 @@ +#include "previewwidget.h" + +G_DEFINE_TYPE(PreviewWidget, PreviewWidget, GTK_TYPE_BIN) + + +void kona_download_image( GtkWidget *widget, gpointer data ) +{ + PreviewWidget_set_image(data, ""); // DEBUG ONLY! +} + +void PreviewWidget_set_image(PreviewWidget *widget, gchar *url) { + GtkWidget *spinner; + GList *widgets; + + widgets = gtk_container_get_children(GTK_CONTAINER(widget)); + spinner = widgets->data; + gtk_widget_set_visible(spinner, TRUE); + + spinner = g_list_next(widgets)->data; + gtk_widget_set_visible(spinner, FALSE); +} + + + +void PreviewWidget_class_init(PreviewWidgetClass *klass) +{ + +} + +void PreviewWidget_init(PreviewWidget *klass) +{ + GtkWidget *widget; + GtkBuilder *builder; + builder = gtk_builder_new(); + gtk_builder_add_from_file(builder, "glade/previewWidget.glade", NULL); + + widget = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(builder), "previewWidget")); + gtk_builder_connect_signals(builder, NULL); + gtk_container_add(GTK_CONTAINER(klass), widget); + + GTK_WIDGET(gtk_builder_get_object(builder, "image")); + + + /*klass->image= GTK_WIDGET(gtk_builder_get_object(builder, "image")); + klass->button = GTK_WIDGET(gtk_builder_get_object(builder, "button")); + klass->spinner = GTK_WIDGET(gtk_builder_get_object(builder, "spinner"));*/ + g_object_unref(G_OBJECT(builder)); +} + +GtkWidget *PreviewWidget_new() +{ + return g_object_new (TYPE_PREVIEWWIDGET, NULL); +} + + +// TODO: DESTROY etc. diff --git a/previewwidget.h b/previewwidget.h new file mode 100644 index 0000000..9157d6f --- /dev/null +++ b/previewwidget.h @@ -0,0 +1,32 @@ +#ifndef PREVIEWWIDGET_H +#define PREVIEWWIDGET_H + +#include + +#include + +G_BEGIN_DECLS + +#define TYPE_PREVIEWWIDGET (PreviewWidget_get_type ()) +#define PREVIEWWIDGET(obj) GTK_CHECK_CAST (obj, PreviewWidget_get_type (), PreviewWidget) +#define PREVIEWWIDGET_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, previewwidget_get_type (), PreviewWidgetClass) +#define IS_PREVIEWWIDGET(obj) GTK_CHECK_TYPE (obj, previewwidget_get_type ()) + +typedef struct _PreviewWidget PreviewWidget; +typedef struct _PreviewWidgetClass PreviewWidgetClass; + +struct _PreviewWidget { + GtkBin bin; +}; + +struct _PreviewWidgetClass { + GtkBinClass parent_class; + void (* PreviewWidget) (PreviewWidget *pvWidget); +}; + +GType PreviewWidget_get_type (void) G_GNUC_CONST; +GtkWidget* PreviewWidget_new (void); + +G_END_DECLS + +#endif // PREVIEWWIDGET_H