Skip to content

Commit

Permalink
Introduce new dash window
Browse files Browse the repository at this point in the history
As requested in #36
`BriskMenuWindow` is now a base class that all windows must implement
`BriskMenuEntryButton` must also be implemented for launcher buttons
This PR also includes a fix for #78
It also fixes the date range in all licence headers
  • Loading branch information
Stefan Ric committed Jan 17, 2018
1 parent 9e4cb8f commit c31ccc5
Show file tree
Hide file tree
Showing 46 changed files with 2,815 additions and 1,087 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Expand Up @@ -2,5 +2,6 @@ Adam Hobaugh <adam@hobaugh.us>
Federico Damián Schonborn <federicodamiansch@gmail.com>
Ikey Doherty <ikey@solus-project.com>
Martin Wimpress <code@flexion.org>
Stefan Ric <stefan@solus-project.com>
Stefan Ric <stfric369@gmail.com>
Victor Kareh <vkareh@vkareh.net>
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -71,7 +71,7 @@ Building Brisk Menu
License
--------

Copyright © 2016-2017 Brisk Menu Developers
Copyright © 2016-2018 Brisk Menu Developers

`brisk-menu` is available under the terms of the `GPL-2.0` license.

Expand Down
3 changes: 2 additions & 1 deletion data/brisk.gresource.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/com/solus-project/brisk/menu">
<file>styling.css</file>
<file>classic/styling.css</file>
<file>dash/styling.css</file>
</gresource>
</gresources>
File renamed without changes.
10 changes: 10 additions & 0 deletions data/com.solus-project.brisk-menu.gschema.xml
Expand Up @@ -5,6 +5,11 @@
<value nick="top" value="2" />
<value nick="automatic" value="4" />
</enum>
<enum id="com.solus-project.brisk-menu.WindowType">
<value nick="classic" value="1" />
<value nick="dash" value="2" />
<value nick="automatic" value="4" />
</enum>
<schema path="/com/solus-project/brisk-menu/" id="com.solus-project.brisk-menu">
<key type="as" name="pinned-shortcuts">
<default>['matecc.desktop']</default>
Expand All @@ -31,6 +36,11 @@
<summary>Search bar position</summary>
<description>Where the search bar will appear in the menu</description>
</key>
<key enum="com.solus-project.brisk-menu.WindowType" name="window-type">
<default>'classic'</default>
<summary>Window type</summary>
<description>The window we're going to display</description>
</key>
<key type="s" name="hot-key">
<default>'Super_L'</default>
<summary>Keyboard shortcut</summary>
Expand Down
39 changes: 39 additions & 0 deletions data/dash/styling.css
@@ -0,0 +1,39 @@
.brisk-button-vertical {
padding: 0px;
margin: 0px;
}

.brisk-button {
padding: 0px;
margin: 0px;
}

.brisk-dash {
background-color: alpha(@theme_bg_color, 0.95);
}

.brisk-dash .dash-category-button {
border: 1px solid transparent;
background-color: transparent;
font-weight: bold;
}

.brisk-dash .dash-category-button:checked {
background-color: mix(@theme_bg_color, #000000, 0.2);
border: 1px solid alpha(@theme_fg_color, 0.1);
}

.brisk-dash .dash-category-button:hover {
background-color: mix(@theme_bg_color, #000000, 0.2);
border: 1px solid alpha(#000, 0.2);
}

.brisk-dash .header {
background-color: mix(@theme_bg_color, #000000, 0.1);
border-bottom: 1px solid mix(@theme_base_color, #000000, 0.35);
box-shadow: 0px 1px 1px alpha(@theme_fg_color, 0.04);
}

.brisk-dash .header .section-box-holder {
margin: 5px;
}
59 changes: 0 additions & 59 deletions src/frontend/category-button.h

This file was deleted.

@@ -1,7 +1,7 @@
/*
* This file is part of brisk-menu.
*
* Copyright © 2016-2017 Brisk Menu Developers
* Copyright © 2016-2018 Brisk Menu Developers
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
Expand All @@ -20,32 +20,32 @@ BRISK_BEGIN_PEDANTIC
#include <gtk/gtk.h>
BRISK_END_PEDANTIC

struct _BriskMenuCategoryButtonClass {
struct _BriskClassicCategoryButtonClass {
GtkRadioButtonClass parent_class;
};

/**
* BriskMenuCategoryButton is the toplevel window type used within the applet.
* BriskClassicCategoryButton is the toplevel window type used within the applet.
*/
struct _BriskMenuCategoryButton {
struct _BriskClassicCategoryButton {
GtkRadioButton parent;
BriskSection *section;
GtkWidget *label;
GtkWidget *image;
};

G_DEFINE_TYPE(BriskMenuCategoryButton, brisk_menu_category_button, GTK_TYPE_RADIO_BUTTON)
G_DEFINE_TYPE(BriskClassicCategoryButton, brisk_classic_category_button, GTK_TYPE_RADIO_BUTTON)

enum { PROP_SECTION = 1, N_PROPS };

static GParamSpec *obj_properties[N_PROPS] = {
NULL,
};

static void brisk_menu_category_button_set_property(GObject *object, guint id, const GValue *value,
GParamSpec *spec)
static void brisk_classic_category_button_set_property(GObject *object, guint id,
const GValue *value, GParamSpec *spec)
{
BriskMenuCategoryButton *self = BRISK_MENU_CATEGORY_BUTTON(object);
BriskClassicCategoryButton *self = BRISK_CLASSIC_CATEGORY_BUTTON(object);

switch (id) {
case PROP_SECTION:
Expand All @@ -57,10 +57,10 @@ static void brisk_menu_category_button_set_property(GObject *object, guint id, c
}
}

static void brisk_menu_category_button_get_property(GObject *object, guint id, GValue *value,
GParamSpec *spec)
static void brisk_classic_category_button_get_property(GObject *object, guint id, GValue *value,
GParamSpec *spec)
{
BriskMenuCategoryButton *self = BRISK_MENU_CATEGORY_BUTTON(object);
BriskClassicCategoryButton *self = BRISK_CLASSIC_CATEGORY_BUTTON(object);

switch (id) {
case PROP_SECTION:
Expand All @@ -73,37 +73,37 @@ static void brisk_menu_category_button_get_property(GObject *object, guint id, G
}

/**
* brisk_menu_category_button_new:
* brisk_classic_category_button_new:
*
* Construct a new BriskMenuCategoryButton object
* Construct a new BriskClassicCategoryButton object
*/
GtkWidget *brisk_menu_category_button_new(BriskSection *section)
GtkWidget *brisk_classic_category_button_new(BriskSection *section)
{
return g_object_new(BRISK_TYPE_MENU_CATEGORY_BUTTON, "section", section, NULL);
return g_object_new(BRISK_TYPE_CLASSIC_CATEGORY_BUTTON, "section", section, NULL);
}

/**
* brisk_menu_category_button_dispose:
* brisk_classic_category_button_dispose:
*
* Clean up a BriskMenuCategoryButton instance
* Clean up a BriskClassicCategoryButton instance
*/
static void brisk_menu_category_button_dispose(GObject *obj)
static void brisk_classic_category_button_dispose(GObject *obj)
{
BriskMenuCategoryButton *self = BRISK_MENU_CATEGORY_BUTTON(obj);
BriskClassicCategoryButton *self = BRISK_CLASSIC_CATEGORY_BUTTON(obj);

g_clear_object(&self->section);

G_OBJECT_CLASS(brisk_menu_category_button_parent_class)->dispose(obj);
G_OBJECT_CLASS(brisk_classic_category_button_parent_class)->dispose(obj);
}

/**
* Handle constructor specifics for our button
*/
static void brisk_menu_category_button_constructed(GObject *obj)
static void brisk_classic_category_button_constructed(GObject *obj)
{
BriskMenuCategoryButton *self = NULL;
BriskClassicCategoryButton *self = NULL;

self = BRISK_MENU_CATEGORY_BUTTON(obj);
self = BRISK_CLASSIC_CATEGORY_BUTTON(obj);

/* If we have a section, use it, otherwise we're a special "All" button */
if (self->section) {
Expand All @@ -120,23 +120,23 @@ static void brisk_menu_category_button_constructed(GObject *obj)

gtk_image_set_pixel_size(GTK_IMAGE(self->image), 16);

G_OBJECT_CLASS(brisk_menu_category_button_parent_class)->constructed(obj);
G_OBJECT_CLASS(brisk_classic_category_button_parent_class)->constructed(obj);
}

/**
* brisk_menu_category_button_class_init:
* brisk_classic_category_button_class_init:
*
* Handle class initialisation
*/
static void brisk_menu_category_button_class_init(BriskMenuCategoryButtonClass *klazz)
static void brisk_classic_category_button_class_init(BriskClassicCategoryButtonClass *klazz)
{
GObjectClass *obj_class = G_OBJECT_CLASS(klazz);

/* gobject vtable hookup */
obj_class->dispose = brisk_menu_category_button_dispose;
obj_class->set_property = brisk_menu_category_button_set_property;
obj_class->get_property = brisk_menu_category_button_get_property;
obj_class->constructed = brisk_menu_category_button_constructed;
obj_class->dispose = brisk_classic_category_button_dispose;
obj_class->set_property = brisk_classic_category_button_set_property;
obj_class->get_property = brisk_classic_category_button_get_property;
obj_class->constructed = brisk_classic_category_button_constructed;

obj_properties[PROP_SECTION] = g_param_spec_pointer("section",
"The BriskSection",
Expand All @@ -146,11 +146,11 @@ static void brisk_menu_category_button_class_init(BriskMenuCategoryButtonClass *
}

/**
* brisk_menu_category_button_init:
* brisk_classic_category_button_init:
*
* Handle construction of the BriskMenuCategoryButton
* Handle construction of the BriskClassicCategoryButton
*/
static void brisk_menu_category_button_init(BriskMenuCategoryButton *self)
static void brisk_classic_category_button_init(BriskClassicCategoryButton *self)
{
GtkStyleContext *style = NULL;
GtkWidget *label = NULL;
Expand Down
61 changes: 61 additions & 0 deletions src/frontend/classic/category-button.h
@@ -0,0 +1,61 @@
/*
* This file is part of brisk-menu.
*
* Copyright © 2016-2018 Brisk Menu Developers
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/

#pragma once

#include "backend/section.h"
#include <glib-object.h>
#include <gtk/gtk.h>

G_BEGIN_DECLS

typedef struct _BriskClassicCategoryButton BriskClassicCategoryButton;
typedef struct _BriskClassicCategoryButtonClass BriskClassicCategoryButtonClass;

#define BRISK_TYPE_CLASSIC_CATEGORY_BUTTON brisk_classic_category_button_get_type()
#define BRISK_CLASSIC_CATEGORY_BUTTON(o) \
(G_TYPE_CHECK_INSTANCE_CAST((o), \
BRISK_TYPE_CLASSIC_CATEGORY_BUTTON, \
BriskClassicCategoryButton))
#define BRISK_IS_CLASSIC_CATEGORY_BUTTON(o) \
(G_TYPE_CHECK_INSTANCE_TYPE((o), BRISK_TYPE_CLASSIC_CATEGORY_BUTTON))
#define BRISK_CLASSIC_CATEGORY_BUTTON_CLASS(o) \
(G_TYPE_CHECK_CLASS_CAST((o), \
BRISK_TYPE_CLASSIC_CATEGORY_BUTTON, \
BriskClassicCategoryButtonClass))
#define BRISK_IS_CLASSIC_CATEGORY_BUTTON_CLASS(o) \
(G_TYPE_CHECK_CLASS_TYPE((o), BRISK_TYPE_CLASSIC_CATEGORY_BUTTON))
#define BRISK_CLASSIC_CATEGORY_BUTTON_GET_CLASS(o) \
(G_TYPE_INSTANCE_GET_CLASS((o), \
BRISK_TYPE_CLASSIC_CATEGORY_BUTTON, \
BriskClassicCategoryButtonClass))

/**
* Construct a new BriskClassicCategoryButton from the given group
*/
GtkWidget *brisk_classic_category_button_new(BriskSection *section);

GType brisk_classic_category_button_get_type(void);

G_END_DECLS

/*
* Editor modelines - https://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=8 tabstop=8 expandtab:
* :indentSize=8:tabSize=8:noTabs=true:
*/

0 comments on commit c31ccc5

Please sign in to comment.