commit df4110a471c485a378faa695376956860b8fea1e
parent 7d2fbbeea808ae7dad7b403fc17244d1c07cb2de
Author: TheJackiMonster <thejackimonster@gmail.com>
Date: Wed, 27 Oct 2021 01:04:48 +0200
Added basic code to startup ui file and handle first interactions
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
Diffstat:
3 files changed, 846 insertions(+), 749 deletions(-)
diff --git a/resources/css/style.css b/resources/css/style.css
@@ -0,0 +1,5 @@
+
+.flap-background {
+ background-color: @theme_bg_color;
+}
+
diff --git a/resources/ui/messenger.ui b/resources/ui/messenger.ui
@@ -22,74 +22,185 @@ Author: Tobias Frisch
-->
<interface>
<requires lib="gtk+" version="3.24"/>
- <requires lib="libhandy" version="0.0"/>
- <object class="HdyApplicationWindow">
+ <requires lib="libhandy" version="1.2"/>
+ <object class="GtkSizeGroup">
+ <widgets>
+ <widget name="new-group-label"/>
+ <widget name="new-platform-label"/>
+ <widget name="contacts-label"/>
+ <widget name="calls-label"/>
+ <widget name="settings-label"/>
+ <widget name="night-mode-label"/>
+ </widgets>
+ </object>
+ <object class="GtkApplicationWindow" id="main_window">
<property name="can-focus">False</property>
<child>
- <object class="GtkBox">
+ <object class="HdyLeaflet">
+ <property name="height-request">600</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="interpolate-size">True</property>
<child>
- <object class="HdyTitleBar">
+ <object class="HdyFlap" id="flap_user_details">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <child>
- <object class="HdyHeaderBar">
+ <property name="fold-policy">always</property>
+ <child type="content">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="title" translatable="yes">Messenger</property>
- <property name="subtitle" translatable="yes">GNUnet</property>
- <property name="show-close-button">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="chats-header-box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">8</property>
+ <property name="margin-end">8</property>
+ <property name="margin-top">8</property>
+ <property name="margin-bottom">8</property>
+ <property name="spacing">8</property>
+ <child>
+ <object class="GtkButton" id="user_details_button">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">open-menu-symbolic</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSearchEntry">
+ <property name="width-request">250</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="primary-icon-name">edit-find-symbolic</property>
+ <property name="primary-icon-activatable">False</property>
+ <property name="primary-icon-sensitive">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
<child>
- <object class="GtkButton">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">half</property>
+ <property name="shadow-type">in</property>
<child>
- <object class="GtkImage">
+ <object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="icon-name">go-previous-symbolic</property>
+ <child>
+ <object class="GtkListBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ </child>
</object>
</child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="HdyLeaflet">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="interpolate-size">True</property>
- <child>
- <object class="HdyFlap">
+ <child type="separator">
+ <object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <child type="content">
+ </object>
+ </child>
+ <child type="flap">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="orientation">vertical</property>
<child>
- <object class="GtkBox" id="chats-header-box">
+ <object class="GtkBox">
+ <property name="width-request">150</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">16</property>
+ <property name="margin-end">16</property>
+ <property name="margin-top">16</property>
+ <property name="margin-bottom">16</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">16</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="xalign">0</property>
+ <property name="icon-name">avatar-default-symbolic</property>
+ <property name="icon_size">6</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Profile name</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="margin-top">8</property>
<property name="margin-bottom">8</property>
+ <property name="orientation">vertical</property>
<property name="spacing">8</property>
+ <property name="homogeneous">True</property>
<child>
- <object class="GtkButton">
+ <object class="GtkButton" id="hide_user_details_button">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@@ -98,7 +209,7 @@ Author: Tobias Frisch
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="icon-name">open-menu-symbolic</property>
+ <property name="icon-name">go-previous-symbolic</property>
</object>
</child>
</object>
@@ -109,13 +220,20 @@ Author: Tobias Frisch
</packing>
</child>
<child>
- <object class="GtkSearchEntry">
- <property name="width-request">250</property>
+ <object class="GtkButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
- <property name="primary-icon-name">edit-find-symbolic</property>
- <property name="primary-icon-activatable">False</property>
- <property name="primary-icon-sensitive">False</property>
+ <property name="receives-default">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="relief">none</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">user-bookmarks-symbolic</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">True</property>
@@ -123,29 +241,27 @@ Author: Tobias Frisch
<property name="position">1</property>
</packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkScrolledWindow">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="shadow-type">in</property>
<child>
- <object class="GtkViewport">
+ <object class="GtkButton" id="account_details_button">
<property name="visible">True</property>
- <property name="can-focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="relief">none</property>
<child>
- <object class="GtkListBox">
+ <object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="icon-name">go-down-symbolic</property>
</object>
</child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
</object>
<packing>
@@ -155,613 +271,389 @@ Author: Tobias Frisch
</packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
- <child type="separator">
- <object class="GtkSeparator">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- </object>
- </child>
- <child type="flap">
- <object class="GtkBox">
+ <child>
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="can-focus">True</property>
<child>
- <object class="GtkBox">
+ <object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox">
- <property name="width-request">150</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">16</property>
- <property name="margin-end">16</property>
- <property name="margin-top">16</property>
- <property name="margin-bottom">16</property>
<property name="orientation">vertical</property>
- <property name="spacing">16</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="xalign">0</property>
- <property name="icon-name">avatar-default-symbolic</property>
- <property name="icon_size">6</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
<child>
- <object class="GtkLabel">
+ <object class="GtkRevealer" id="account_details_revealer">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes">Profile name</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="margin-start">8</property>
- <property name="margin-end">8</property>
- <property name="margin-top">8</property>
- <property name="margin-bottom">8</property>
- <property name="orientation">vertical</property>
- <property name="spacing">8</property>
- <property name="homogeneous">True</property>
- <child>
- <object class="GtkButton">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="relief">none</property>
<child>
- <object class="GtkImage">
+ <object class="GtkScrolledWindow">
+ <property name="height-request">300</property>
<property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">user-bookmarks-symbolic</property>
+ <property name="can-focus">True</property>
+ <child>
+ <object class="GtkViewport">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkListBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkButton">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="relief">none</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">go-down-symbolic</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkScrolledWindow">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <child>
- <object class="GtkViewport">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="shadow-type">none</property>
- <child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
- <object class="GtkRevealer">
+ <object class="GtkButton">
<property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="reveal-child">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
+ <property name="always-show-image">True</property>
<child>
- <object class="GtkScrolledWindow">
+ <object class="GtkBox">
<property name="visible">True</property>
- <property name="can-focus">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">4</property>
+ <property name="margin-end">4</property>
+ <property name="margin-top">4</property>
+ <property name="margin-bottom">4</property>
+ <property name="spacing">16</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">system-users-symbolic</property>
+ <property name="icon_size">3</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
<child>
- <object class="GtkViewport">
+ <object class="GtkLabel" id="new-group-label">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <child>
- <object class="GtkListBox">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- </object>
- </child>
+ <property name="label" translatable="yes">New Group</property>
+ <property name="xalign">0</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkBox">
+ <object class="GtkButton">
<property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
+ <property name="always-show-image">True</property>
<child>
- <object class="GtkButton">
+ <object class="GtkBox">
<property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">none</property>
- <property name="always-show-image">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">4</property>
+ <property name="margin-end">4</property>
+ <property name="margin-top">4</property>
+ <property name="margin-bottom">4</property>
+ <property name="spacing">16</property>
<child>
- <object class="GtkBox">
+ <object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-left">4</property>
- <property name="margin-right">4</property>
- <property name="margin-start">4</property>
- <property name="margin-end">4</property>
- <property name="margin-top">4</property>
- <property name="margin-bottom">4</property>
- <property name="spacing">16</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">system-users-symbolic</property>
- <property name="icon_size">3</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="new-group-label">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes">New Group</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="icon-name">network-wired-symbolic</property>
+ <property name="icon_size">3</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">none</property>
- <property name="always-show-image">True</property>
<child>
- <object class="GtkBox">
+ <object class="GtkLabel" id="new-platform-label">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-left">4</property>
- <property name="margin-right">4</property>
- <property name="margin-start">4</property>
- <property name="margin-end">4</property>
- <property name="margin-top">4</property>
- <property name="margin-bottom">4</property>
- <property name="spacing">16</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">network-wired-symbolic</property>
- <property name="icon_size">3</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="new-platform-label">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes">New Platform</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="label" translatable="yes">New Platform</property>
+ <property name="xalign">0</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
- <child>
- <object class="GtkButton">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">none</property>
- <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
+ <property name="always-show-image">True</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">4</property>
+ <property name="margin-end">4</property>
+ <property name="margin-top">4</property>
+ <property name="margin-bottom">4</property>
+ <property name="spacing">16</property>
<child>
- <object class="GtkBox">
+ <object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-left">4</property>
- <property name="margin-right">4</property>
- <property name="margin-start">4</property>
- <property name="margin-end">4</property>
- <property name="margin-top">4</property>
- <property name="margin-bottom">4</property>
- <property name="spacing">16</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">avatar-default-symbolic</property>
- <property name="icon_size">3</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="contacts-label">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes">Contacts</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="icon-name">avatar-default-symbolic</property>
+ <property name="icon_size">3</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">none</property>
- <property name="always-show-image">True</property>
<child>
- <object class="GtkBox">
+ <object class="GtkLabel" id="contacts-label">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-left">4</property>
- <property name="margin-right">4</property>
- <property name="margin-start">4</property>
- <property name="margin-end">4</property>
- <property name="margin-top">4</property>
- <property name="margin-bottom">4</property>
- <property name="spacing">16</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">call-start-symbolic</property>
- <property name="icon_size">3</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="calls-label">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes">Calls</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="label" translatable="yes">Contacts</property>
+ <property name="xalign">0</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
+ <property name="always-show-image">True</property>
<child>
- <object class="GtkButton">
+ <object class="GtkBox">
<property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">none</property>
- <property name="always-show-image">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">4</property>
+ <property name="margin-end">4</property>
+ <property name="margin-top">4</property>
+ <property name="margin-bottom">4</property>
+ <property name="spacing">16</property>
<child>
- <object class="GtkBox">
+ <object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-left">4</property>
- <property name="margin-right">4</property>
- <property name="margin-start">4</property>
- <property name="margin-end">4</property>
- <property name="margin-top">4</property>
- <property name="margin-bottom">4</property>
- <property name="spacing">16</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">emblem-system-symbolic</property>
- <property name="icon_size">3</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="settings-label">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes">Settings</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="icon-name">call-start-symbolic</property>
+ <property name="icon_size">3</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">none</property>
- <property name="always-show-image">True</property>
<child>
- <object class="GtkBox">
+ <object class="GtkLabel" id="calls-label">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-left">4</property>
- <property name="margin-right">4</property>
- <property name="margin-start">4</property>
- <property name="margin-end">4</property>
- <property name="margin-top">4</property>
- <property name="margin-bottom">4</property>
- <property name="spacing">16</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">weather-clear-night-symbolic</property>
- <property name="icon_size">3</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="night-mode-label">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes">Night Mode</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="label" translatable="yes">Calls</property>
+ <property name="xalign">0</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">5</property>
- </packing>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">3</property>
</packing>
</child>
<child>
- <object class="GtkBox">
+ <object class="GtkButton">
<property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="margin-start">16</property>
- <property name="margin-end">16</property>
- <property name="margin-top">16</property>
- <property name="margin-bottom">16</property>
- <property name="orientation">vertical</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
+ <property name="always-show-image">True</property>
<child>
- <object class="GtkLabel">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">GNUnet Messenger</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
+ <property name="margin-start">4</property>
+ <property name="margin-end">4</property>
+ <property name="margin-top">4</property>
+ <property name="margin-bottom">4</property>
+ <property name="spacing">16</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">emblem-system-symbolic</property>
+ <property name="icon_size">3</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="settings-label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Settings</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
+ <property name="always-show-image">True</property>
<child>
- <object class="GtkLabel">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Version 0.0.1</property>
+ <property name="margin-start">4</property>
+ <property name="margin-end">4</property>
+ <property name="margin-top">4</property>
+ <property name="margin-bottom">4</property>
+ <property name="spacing">16</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">weather-clear-night-symbolic</property>
+ <property name="icon_size">3</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="night-mode-label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Night Mode</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack-type">end</property>
- <property name="position">2</property>
+ <property name="position">5</property>
</packing>
</child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="HdyFlap">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="flap-position">end</property>
- <property name="reveal-flap">False</property>
- <child type="content">
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkBox" id="chat-header-box">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="margin-start">8</property>
- <property name="margin-end">8</property>
- <property name="margin-top">8</property>
- <property name="margin-bottom">8</property>
- <property name="spacing">8</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="halign">start</property>
- <property name="margin-left">4</property>
- <property name="margin-right">4</property>
- <property name="margin-start">4</property>
- <property name="margin-end">4</property>
+ <property name="margin-start">16</property>
+ <property name="margin-end">16</property>
+ <property name="margin-top">16</property>
+ <property name="margin-bottom">16</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes">Chat title</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">GNUnet Messenger</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -776,327 +668,436 @@ Author: Tobias Frisch
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes">Chat subtitle</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="weight" value="light"/>
- </attributes>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Version 0.0.1</property>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">0</property>
+ <property name="pack-type">end</property>
+ <property name="position">2</property>
</packing>
</child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <style>
+ <class name="flap-background"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="HdyFlap" id="flap_chat_details">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="flap-position">end</property>
+ <property name="reveal-flap">False</property>
+ <property name="fold-policy">always</property>
+ <child type="content">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="chat-header-box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">8</property>
+ <property name="margin-end">8</property>
+ <property name="margin-top">8</property>
+ <property name="margin-bottom">8</property>
+ <property name="spacing">8</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin-start">4</property>
+ <property name="margin-end">4</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkButton">
+ <object class="GtkLabel">
<property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">none</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">view-more-symbolic</property>
- </object>
- </child>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Chat title</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack-type">end</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkButton">
+ <object class="GtkLabel">
<property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">none</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">system-search-symbolic</property>
- </object>
- </child>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Chat subtitle</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="weight" value="light"/>
+ </attributes>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
- <property name="pack-type">end</property>
- <property name="position">2</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkScrolledWindow">
+ <object class="GtkButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
<child>
- <object class="GtkViewport">
+ <object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <child>
- <object class="GtkStack">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <child>
- <placeholder/>
- </child>
- </object>
- </child>
+ <property name="icon-name">view-more-symbolic</property>
</object>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
+ <property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
- <object class="GtkBox">
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">system-search-symbolic</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <child>
+ <object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">8</property>
- <property name="margin-end">8</property>
- <property name="margin-top">8</property>
- <property name="margin-bottom">8</property>
- <property name="spacing">8</property>
<child>
- <object class="GtkButton">
+ <object class="GtkStack">
<property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="valign">end</property>
- <property name="relief">none</property>
+ <property name="can-focus">False</property>
<child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">mail-attachment-symbolic</property>
- </object>
+ <placeholder/>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">8</property>
+ <property name="margin-end">8</property>
+ <property name="margin-top">8</property>
+ <property name="margin-bottom">8</property>
+ <property name="spacing">8</property>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="valign">end</property>
+ <property name="relief">none</property>
<child>
- <object class="GtkTextView">
- <property name="width-request">250</property>
+ <object class="GtkImage">
<property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="valign">end</property>
- <property name="wrap-mode">word-char</property>
- <property name="left-margin">8</property>
- <property name="right-margin">8</property>
- <property name="top-margin">8</property>
- <property name="bottom-margin">8</property>
- <property name="input-hints">GTK_INPUT_HINT_SPELLCHECK | GTK_INPUT_HINT_WORD_COMPLETION | GTK_INPUT_HINT_INHIBIT_OSK | GTK_INPUT_HINT_EMOJI | GTK_INPUT_HINT_NONE</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">mail-attachment-symbolic</property>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkTextView">
+ <property name="width-request">250</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="valign">end</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="left-margin">8</property>
+ <property name="right-margin">8</property>
+ <property name="top-margin">8</property>
+ <property name="bottom-margin">8</property>
+ <property name="input-hints">GTK_INPUT_HINT_SPELLCHECK | GTK_INPUT_HINT_WORD_COMPLETION | GTK_INPUT_HINT_INHIBIT_OSK | GTK_INPUT_HINT_EMOJI | GTK_INPUT_HINT_NONE</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="valign">end</property>
+ <property name="relief">none</property>
<child>
- <object class="GtkButton">
+ <object class="GtkImage">
<property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="valign">end</property>
- <property name="relief">none</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">face-smile-symbolic</property>
- </object>
- </child>
+ <property name="can-focus">False</property>
+ <property name="icon-name">face-smile-symbolic</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="valign">end</property>
+ <property name="relief">none</property>
<child>
- <object class="GtkButton">
+ <object class="GtkImage">
<property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="valign">end</property>
- <property name="relief">none</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">audio-input-microphone-symbolic</property>
- </object>
- </child>
+ <property name="can-focus">False</property>
+ <property name="icon-name">audio-input-microphone-symbolic</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="position">3</property>
</packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
- <child type="separator">
- <object class="GtkSeparator">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- </object>
- </child>
- <child type="flap">
- <object class="GtkBox">
+ </object>
+ </child>
+ <child type="separator">
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ </child>
+ <child type="flap">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="details-header-box">
+ <property name="width-request">250</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="margin-start">8</property>
+ <property name="margin-end">8</property>
+ <property name="margin-top">8</property>
+ <property name="margin-bottom">8</property>
<child>
- <object class="GtkBox" id="details-header-box">
- <property name="width-request">250</property>
+ <object class="GtkStack">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">8</property>
- <property name="margin-end">8</property>
- <property name="margin-top">8</property>
- <property name="margin-bottom">8</property>
<child>
- <object class="GtkStack">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="spacing">8</property>
<child>
- <object class="GtkBox">
+ <object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="spacing">8</property>
+ <property name="xpad">8</property>
+ <property name="label" translatable="yes">Chat Details</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
<child>
- <object class="GtkLabel">
+ <object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="xpad">8</property>
- <property name="label" translatable="yes">Chat Details</property>
- <property name="xalign">0</property>
+ <property name="icon-name">window-close-symbolic</property>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">True</property>
- <property name="relief">none</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="icon-name">window-close-symbolic</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack-type">end</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
<packing>
- <property name="name">page0</property>
- <property name="title" translatable="yes">page0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="name">page0</property>
+ <property name="title" translatable="yes">page0</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
<child>
- <object class="GtkScrolledWindow">
+ <object class="GtkViewport">
<property name="visible">True</property>
- <property name="can-focus">True</property>
+ <property name="can-focus">False</property>
<child>
- <object class="GtkViewport">
+ <object class="GtkStack">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
- <object class="GtkStack">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <child>
- <placeholder/>
- </child>
- </object>
+ <placeholder/>
</child>
</object>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
+ <style>
+ <class name="flap-background"/>
+ </style>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="titlebar">
+ <object class="HdyHeaderBar" id="title_bar">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="title" translatable="yes">Messenger</property>
+ <property name="subtitle" translatable="yes">GNUnet</property>
+ <property name="interpolate-size">True</property>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">go-previous-symbolic</property>
+ </object>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
</child>
@@ -1109,14 +1110,4 @@ Author: Tobias Frisch
<widget name="details-header-box"/>
</widgets>
</object>
- <object class="GtkSizeGroup">
- <widgets>
- <widget name="new-group-label"/>
- <widget name="new-platform-label"/>
- <widget name="contacts-label"/>
- <widget name="calls-label"/>
- <widget name="settings-label"/>
- <widget name="night-mode-label"/>
- </widgets>
- </object>
</interface>
diff --git a/src/messenger_gtk.c b/src/messenger_gtk.c
@@ -23,11 +23,112 @@
*/
#include <gtk-3.0/gtk/gtk.h>
+#include <libhandy-1/handy.h>
+
#include <gnunet/gnunet_chat_lib.h>
+G_MODULE_EXPORT void handle_user_details_button_click(GtkButton* button,
+ gpointer user_data)
+{
+ HdyFlap* flap = HDY_FLAP(user_data);
+
+ if (TRUE == hdy_flap_get_reveal_flap(flap)) {
+ hdy_flap_set_reveal_flap(flap, FALSE);
+ } else {
+ hdy_flap_set_reveal_flap(flap, TRUE);
+ }
+}
+
+G_MODULE_EXPORT void handle_account_details_button_click(GtkButton* button,
+ gpointer user_data)
+{
+ GtkRevealer* revealer = GTK_REVEALER(user_data);
+
+ if (TRUE == gtk_revealer_get_reveal_child(revealer)) {
+ gtk_revealer_set_reveal_child(revealer, FALSE);
+ } else {
+ gtk_revealer_set_reveal_child(revealer, TRUE);
+ }
+}
+
int main(int argc, char** argv) {
gtk_init(&argc, &argv);
- GNUNET_CHAT_test("Hello world");
+ GtkBuilder* builder = gtk_builder_new();
+ gtk_builder_add_from_file(
+ builder,
+ "resources/ui/messenger.ui",
+ NULL
+ );
+
+ GtkApplicationWindow* window = GTK_APPLICATION_WINDOW(
+ gtk_builder_get_object(builder, "main_window")
+ );
+
+ GdkScreen* screen = gdk_screen_get_default();
+
+ GtkCssProvider* provider = gtk_css_provider_new();
+ gtk_css_provider_load_from_path(
+ provider,
+ "resources/css/style.css",
+ NULL
+ );
+
+ gtk_style_context_add_provider_for_screen(
+ screen,
+ GTK_STYLE_PROVIDER(provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION
+ );
+
+ HdyHeaderBar* title_bar = HDY_HEADER_BAR(
+ gtk_builder_get_object(builder, "title_bar")
+ );
+
+ GtkButton* user_details_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "user_details_button")
+ );
+
+ GtkButton* hide_user_details_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "hide_user_details_button")
+ );
+
+ HdyFlap* flap_user_details = HDY_FLAP(
+ gtk_builder_get_object(builder, "flap_user_details")
+ );
+
+ g_signal_connect(
+ user_details_button,
+ "clicked",
+ G_CALLBACK(handle_user_details_button_click),
+ flap_user_details
+ );
+
+ g_signal_connect(
+ hide_user_details_button,
+ "clicked",
+ G_CALLBACK(handle_user_details_button_click),
+ flap_user_details
+ );
+
+ GtkButton* account_details_button = GTK_BUTTON(
+ gtk_builder_get_object(builder, "account_details_button")
+ );
+
+ GtkRevealer* account_details_revealer = GTK_REVEALER(
+ gtk_builder_get_object(builder, "account_details_revealer")
+ );
+
+ g_signal_connect(
+ account_details_button,
+ "clicked",
+ G_CALLBACK(handle_account_details_button_click),
+ account_details_revealer
+ );
+
+ gtk_widget_show(GTK_WIDGET(window));
+
+ g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
+
+ gtk_main();
return 0;
}