messenger.ui (44752B)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- Generated with glade 3.40.0 3 4 Copyright (C) 2021‑‑2025 GNUnet e.V. 5 6 GNUnet is free software: you can redistribute it and/or modify it 7 under the terms of the GNU Affero General Public License as published 8 by the Free Software Foundation, either version 3 of the License, 9 or (at your option) any later version. 10 11 GNUnet is distributed in the hope that it will be useful, but 12 WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 Affero General Public License for more details. 15 16 You should have received a copy of the GNU Affero General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. 18 19 SPDX-License-Identifier: AGPL3.0-or-later 20 Author: Tobias Frisch 21 22 --> 23 <interface> 24 <requires lib="gtk+" version="3.24"/> 25 <requires lib="libhandy" version="1.2"/> 26 <object class="GtkApplicationWindow" id="main_window"> 27 <property name="icon-name">org.gnunet.Messenger</property> 28 <property name="startup-id">org.gnunet.Messenger</property> 29 <property name="show-menubar">0</property> 30 <child> 31 <object class="HdyLeaflet" id="leaflet_chat"> 32 <property name="visible">True</property> 33 <property name="can-focus">False</property> 34 <property name="hhomogeneous-folded">False</property> 35 <property name="vhomogeneous-folded">False</property> 36 <property name="can-swipe-back">True</property> 37 <child> 38 <object class="GtkBox" id="nav_box"> 39 <property name="visible">1</property> 40 <property name="orientation">vertical</property> 41 <child> 42 <object class="HdyFlap" id="flap_user_details"> 43 <property name="width-request">300</property> 44 <property name="visible">True</property> 45 <property name="can-focus">False</property> 46 <property name="reveal-flap">False</property> 47 <property name="fold-policy">always</property> 48 <child type="content"> 49 <object class="GtkBox"> 50 <property name="visible">1</property> 51 <property name="orientation">vertical</property> 52 <child> 53 <object class="GtkScrolledWindow"> 54 <property name="visible">1</property> 55 <property name="can-focus">1</property> 56 <property name="shadow-type">in</property> 57 <child> 58 <object class="GtkViewport"> 59 <property name="visible">1</property> 60 <child> 61 <object class="GtkListBox" id="chats_listbox"> 62 <property name="visible">1</property> 63 </object> 64 </child> 65 </object> 66 </child> 67 </object> 68 <packing> 69 <property name="expand">1</property> 70 <property name="pack-type">end</property> 71 </packing> 72 </child> 73 </object> 74 </child> 75 <child type="separator"> 76 <object class="GtkSeparator"> 77 <property name="visible">1</property> 78 </object> 79 </child> 80 <child type="flap"> 81 <object class="GtkBox"> 82 <property name="visible">1</property> 83 <property name="orientation">vertical</property> 84 <child> 85 <object class="GtkBox"> 86 <property name="width-request">240</property> 87 <property name="visible">1</property> 88 <child> 89 <object class="GtkBox"> 90 <property name="visible">1</property> 91 <property name="border-width">16</property> 92 <property name="orientation">vertical</property> 93 <property name="spacing">16</property> 94 <child> 95 <object class="GtkButton" id="profile_button"> 96 <property name="visible">1</property> 97 <property name="receives-default">1</property> 98 <property name="halign">start</property> 99 <property name="relief">none</property> 100 <child> 101 <object class="HdyAvatar" id="profile_avatar"> 102 <property name="visible">True</property> 103 <property name="can-focus">False</property> 104 <property name="size">64</property> 105 </object> 106 </child> 107 <style> 108 <class name="profile-button"/> 109 </style> 110 </object> 111 </child> 112 <child> 113 <object class="GtkBox"> 114 <property name="visible">1</property> 115 <property name="orientation">vertical</property> 116 <property name="spacing">2</property> 117 <child> 118 <object class="GtkLabel" id="profile_label"> 119 <property name="visible">1</property> 120 <property name="ellipsize">end</property> 121 <property name="xalign">0</property> 122 <attributes> 123 <attribute name="weight" value="bold"/> 124 </attributes> 125 </object> 126 </child> 127 <child> 128 <object class="GtkLabel" id="profile_key_label"> 129 <property name="visible">1</property> 130 <property name="ellipsize">end</property> 131 <property name="max-width-chars">30</property> 132 <property name="xalign">0</property> 133 <style> 134 <class name="profile-key"/> 135 </style> 136 </object> 137 <packing> 138 <property name="position">1</property> 139 </packing> 140 </child> 141 </object> 142 <packing> 143 <property name="position">1</property> 144 </packing> 145 </child> 146 </object> 147 <packing> 148 <property name="expand">1</property> 149 </packing> 150 </child> 151 <child> 152 <object class="GtkBox"> 153 <property name="visible">1</property> 154 <property name="border-width">8</property> 155 <property name="orientation">vertical</property> 156 <property name="spacing">8</property> 157 <property name="homogeneous">1</property> 158 <child> 159 <object class="GtkButton" id="hide_user_details_button"> 160 <property name="visible">1</property> 161 <property name="can-focus">1</property> 162 <property name="receives-default">1</property> 163 <property name="relief">none</property> 164 <child> 165 <object class="GtkImage"> 166 <property name="visible">1</property> 167 <property name="icon-name">go-previous-symbolic</property> 168 </object> 169 </child> 170 </object> 171 </child> 172 <child> 173 <object class="GtkButton" id="lobby_button"> 174 <property name="visible">1</property> 175 <property name="can-focus">1</property> 176 <property name="receives-default">1</property> 177 <property name="halign">center</property> 178 <property name="valign">center</property> 179 <property name="relief">none</property> 180 <child> 181 <object class="GtkImage"> 182 <property name="visible">1</property> 183 <property name="icon-name">dialog-password-symbolic</property> 184 </object> 185 </child> 186 </object> 187 <packing> 188 <property name="expand">1</property> 189 <property name="position">1</property> 190 </packing> 191 </child> 192 <child> 193 <object class="GtkButton" id="account_details_button"> 194 <property name="visible">1</property> 195 <property name="can-focus">1</property> 196 <property name="receives-default">1</property> 197 <property name="halign">center</property> 198 <property name="valign">center</property> 199 <property name="relief">none</property> 200 <child> 201 <object class="GtkImage" id="account_details_symbol"> 202 <property name="visible">1</property> 203 <property name="icon-name">go-down-symbolic</property> 204 </object> 205 </child> 206 </object> 207 <packing> 208 <property name="expand">1</property> 209 <property name="position">2</property> 210 </packing> 211 </child> 212 </object> 213 <packing> 214 <property name="pack-type">end</property> 215 <property name="position">1</property> 216 </packing> 217 </child> 218 </object> 219 </child> 220 <child> 221 <object class="GtkScrolledWindow"> 222 <property name="visible">1</property> 223 <property name="can-focus">1</property> 224 <child> 225 <object class="GtkViewport"> 226 <property name="visible">1</property> 227 <property name="shadow-type">none</property> 228 <child> 229 <object class="GtkBox"> 230 <property name="visible">1</property> 231 <property name="orientation">vertical</property> 232 <child> 233 <object class="GtkRevealer" id="account_details_revealer"> 234 <property name="visible">1</property> 235 <child> 236 <object class="GtkScrolledWindow"> 237 <property name="height-request">250</property> 238 <property name="visible">1</property> 239 <property name="can-focus">1</property> 240 <child> 241 <object class="GtkViewport"> 242 <property name="visible">1</property> 243 <child> 244 <object class="GtkListBox" id="accounts_listbox"> 245 <property name="visible">1</property> 246 <child> 247 <object class="GtkListBoxRow" id="add_account_listbox_row"> 248 <property name="visible">1</property> 249 <property name="can-focus">1</property> 250 <property name="selectable">0</property> 251 <child> 252 <object class="GtkBox"> 253 <property name="visible">1</property> 254 <property name="spacing">8</property> 255 <child> 256 <object class="GtkImage"> 257 <property name="width-request">36</property> 258 <property name="height-request">36</property> 259 <property name="visible">1</property> 260 <property name="icon-name">list-add-symbolic</property> 261 <property name="icon-size">3</property> 262 </object> 263 </child> 264 <child> 265 <object class="GtkLabel"> 266 <property name="visible">1</property> 267 <property name="label" translatable="yes">Add Account</property> 268 </object> 269 <packing> 270 <property name="position">1</property> 271 </packing> 272 </child> 273 <style> 274 <class name="account-entry"/> 275 </style> 276 </object> 277 </child> 278 </object> 279 </child> 280 </object> 281 </child> 282 </object> 283 </child> 284 </object> 285 </child> 286 </object> 287 </child> 288 <child> 289 <object class="GtkBox"> 290 <property name="visible">1</property> 291 <property name="orientation">vertical</property> 292 <child> 293 <object class="GtkButton" id="new_contact_button"> 294 <property name="visible">1</property> 295 <property name="can-focus">1</property> 296 <property name="receives-default">1</property> 297 <property name="relief">none</property> 298 <property name="always-show-image">1</property> 299 <child> 300 <object class="GtkBox"> 301 <property name="visible">1</property> 302 <property name="border-width">4</property> 303 <property name="spacing">16</property> 304 <child> 305 <object class="GtkImage"> 306 <property name="visible">1</property> 307 <property name="icon-name">contact-new-symbolic</property> 308 <property name="icon-size">3</property> 309 </object> 310 </child> 311 <child> 312 <object class="GtkLabel" id="new-contact-label"> 313 <property name="visible">1</property> 314 <property name="label" translatable="yes">New Contact</property> 315 <property name="xalign">0</property> 316 </object> 317 <packing> 318 <property name="position">1</property> 319 </packing> 320 </child> 321 </object> 322 </child> 323 </object> 324 </child> 325 <child> 326 <object class="GtkButton" id="new_group_button"> 327 <property name="visible">1</property> 328 <property name="can-focus">1</property> 329 <property name="receives-default">1</property> 330 <property name="relief">none</property> 331 <property name="always-show-image">1</property> 332 <child> 333 <object class="GtkBox"> 334 <property name="visible">1</property> 335 <property name="border-width">4</property> 336 <property name="spacing">16</property> 337 <child> 338 <object class="GtkImage"> 339 <property name="visible">1</property> 340 <property name="icon-name">system-users-symbolic</property> 341 <property name="icon-size">3</property> 342 </object> 343 </child> 344 <child> 345 <object class="GtkLabel" id="new-group-label"> 346 <property name="visible">1</property> 347 <property name="label" translatable="yes">New Group</property> 348 <property name="xalign">0</property> 349 </object> 350 <packing> 351 <property name="position">1</property> 352 </packing> 353 </child> 354 </object> 355 </child> 356 </object> 357 <packing> 358 <property name="position">1</property> 359 </packing> 360 </child> 361 <child> 362 <object class="GtkButton" id="new_platform_button"> 363 <property name="visible">1</property> 364 <property name="can-focus">1</property> 365 <property name="receives-default">1</property> 366 <property name="relief">none</property> 367 <property name="always-show-image">1</property> 368 <child> 369 <object class="GtkBox"> 370 <property name="visible">1</property> 371 <property name="border-width">4</property> 372 <property name="spacing">16</property> 373 <child> 374 <object class="GtkImage"> 375 <property name="visible">1</property> 376 <property name="icon-name">network-wired-symbolic</property> 377 <property name="icon-size">3</property> 378 </object> 379 </child> 380 <child> 381 <object class="GtkLabel" id="new-platform-label"> 382 <property name="visible">1</property> 383 <property name="label" translatable="yes">New Platform</property> 384 <property name="xalign">0</property> 385 </object> 386 <packing> 387 <property name="position">1</property> 388 </packing> 389 </child> 390 </object> 391 </child> 392 </object> 393 <packing> 394 <property name="position">2</property> 395 </packing> 396 </child> 397 <child> 398 <object class="GtkButton" id="contacts_button"> 399 <property name="visible">1</property> 400 <property name="can-focus">1</property> 401 <property name="receives-default">1</property> 402 <property name="relief">none</property> 403 <property name="always-show-image">1</property> 404 <child> 405 <object class="GtkBox"> 406 <property name="visible">1</property> 407 <property name="border-width">4</property> 408 <property name="spacing">16</property> 409 <child> 410 <object class="GtkImage"> 411 <property name="visible">1</property> 412 <property name="icon-name">avatar-default-symbolic</property> 413 <property name="icon-size">3</property> 414 </object> 415 </child> 416 <child> 417 <object class="GtkLabel" id="contacts-label"> 418 <property name="visible">1</property> 419 <property name="label" translatable="yes">Contacts</property> 420 <property name="xalign">0</property> 421 </object> 422 <packing> 423 <property name="position">1</property> 424 </packing> 425 </child> 426 </object> 427 </child> 428 </object> 429 <packing> 430 <property name="position">3</property> 431 </packing> 432 </child> 433 <child> 434 <object class="GtkButton" id="settings_button"> 435 <property name="visible">1</property> 436 <property name="can-focus">1</property> 437 <property name="receives-default">1</property> 438 <property name="relief">none</property> 439 <property name="always-show-image">1</property> 440 <child> 441 <object class="GtkBox"> 442 <property name="visible">1</property> 443 <property name="border-width">4</property> 444 <property name="spacing">16</property> 445 <child> 446 <object class="GtkImage"> 447 <property name="visible">1</property> 448 <property name="icon-name">applications-system-symbolic</property> 449 <property name="icon-size">3</property> 450 </object> 451 </child> 452 <child> 453 <object class="GtkLabel" id="settings-label"> 454 <property name="visible">1</property> 455 <property name="label" translatable="yes">Settings</property> 456 <property name="xalign">0</property> 457 </object> 458 <packing> 459 <property name="position">1</property> 460 </packing> 461 </child> 462 </object> 463 </child> 464 </object> 465 <packing> 466 <property name="position">4</property> 467 </packing> 468 </child> 469 <child> 470 <object class="GtkButton" id="about_button"> 471 <property name="visible">1</property> 472 <property name="can-focus">1</property> 473 <property name="receives-default">1</property> 474 <property name="relief">none</property> 475 <child> 476 <object class="GtkBox"> 477 <property name="visible">1</property> 478 <property name="border-width">4</property> 479 <property name="spacing">16</property> 480 <child> 481 <object class="GtkImage"> 482 <property name="visible">1</property> 483 <property name="icon-name">help-about-symbolic</property> 484 <property name="icon-size">3</property> 485 </object> 486 </child> 487 <child> 488 <object class="GtkLabel" id="about-label"> 489 <property name="visible">1</property> 490 <property name="label" translatable="yes">About</property> 491 <property name="xalign">0</property> 492 </object> 493 <packing> 494 <property name="position">1</property> 495 </packing> 496 </child> 497 </object> 498 </child> 499 </object> 500 <packing> 501 <property name="position">5</property> 502 </packing> 503 </child> 504 </object> 505 <packing> 506 <property name="expand">1</property> 507 <property name="position">1</property> 508 </packing> 509 </child> 510 <child> 511 <object class="GtkBox"> 512 <property name="visible">1</property> 513 <property name="border-width">16</property> 514 <property name="orientation">vertical</property> 515 <child> 516 <object class="GtkLabel" id="application-name-label"> 517 <property name="visible">1</property> 518 <property name="halign">start</property> 519 <attributes> 520 <attribute name="weight" value="bold"/> 521 </attributes> 522 </object> 523 </child> 524 <child> 525 <object class="GtkLabel" id="application-version-label"> 526 <property name="visible">1</property> 527 <property name="halign">start</property> 528 </object> 529 <packing> 530 <property name="position">1</property> 531 </packing> 532 </child> 533 </object> 534 <packing> 535 <property name="pack-type">end</property> 536 <property name="position">2</property> 537 </packing> 538 </child> 539 </object> 540 </child> 541 </object> 542 </child> 543 </object> 544 <packing> 545 <property name="expand">1</property> 546 <property name="position">1</property> 547 </packing> 548 </child> 549 <style> 550 <class name="flap-background"/> 551 </style> 552 </object> 553 </child> 554 </object> 555 <packing> 556 <property name="expand">1</property> 557 <property name="pack-type">end</property> 558 </packing> 559 </child> 560 </object> 561 <packing> 562 <property name="name">nav</property> 563 </packing> 564 </child> 565 <child> 566 <object class="GtkBox" id="main_box"> 567 <property name="visible">1</property> 568 <property name="hexpand">1</property> 569 <property name="orientation">vertical</property> 570 <child> 571 <object class="GtkStack" id="chats_stack"> 572 <property name="visible">1</property> 573 <child> 574 <object class="GtkBox" id="no_chat_box"> 575 <property name="visible">1</property> 576 <property name="orientation">vertical</property> 577 <child> 578 <object class="GtkLabel"> 579 <property name="visible">1</property> 580 <property name="halign">center</property> 581 <property name="valign">center</property> 582 <property name="label" translatable="yes">Select a chat to start messaging...</property> 583 <style> 584 <class name="message-box"/> 585 <class name="status"/> 586 </style> 587 </object> 588 <packing> 589 <property name="expand">1</property> 590 </packing> 591 </child> 592 </object> 593 </child> 594 </object> 595 <packing> 596 <property name="expand">1</property> 597 <property name="pack-type">end</property> 598 </packing> 599 </child> 600 </object> 601 <packing> 602 <property name="name">main</property> 603 </packing> 604 </child> 605 </object> 606 </child> 607 <child type="titlebar"> 608 <object class="HdyTitleBar"> 609 <property name="visible">True</property> 610 <property name="can-focus">False</property> 611 <child> 612 <object class="HdyLeaflet" id="leaflet_title"> 613 <property name="visible">True</property> 614 <property name="can-focus">False</property> 615 <property name="hhomogeneous-folded">False</property> 616 <property name="vhomogeneous-folded">False</property> 617 <child> 618 <object class="HdyHeaderBar" id="nav_bar"> 619 <property name="visible">True</property> 620 <property name="can-focus">False</property> 621 <property name="spacing">4</property> 622 <property name="show-close-button">True</property> 623 <child type="title"> 624 <object class="GtkStack" id="chats_title_stack"> 625 <property name="width-request">204</property> 626 <property name="visible">1</property> 627 <property name="transition-type">slide-down</property> 628 <child> 629 <object class="GtkBox" id="title_box"> 630 <property name="visible">1</property> 631 <property name="hexpand">1</property> 632 <child> 633 <object class="GtkLabel"> 634 <property name="visible">1</property> 635 <property name="margin-start">2</property> 636 <property name="label" translatable="yes">GNUnet Messenger</property> 637 <property name="xalign">0</property> 638 <attributes> 639 <attribute name="weight" value="bold"/> 640 </attributes> 641 </object> 642 <packing> 643 <property name="expand">1</property> 644 </packing> 645 </child> 646 <style> 647 <class name="header-box"/> 648 </style> 649 </object> 650 <packing> 651 <property name="name">title_page</property> 652 </packing> 653 </child> 654 <child> 655 <object class="GtkBox" id="search_box"> 656 <property name="visible">1</property> 657 <property name="hexpand">1</property> 658 <child> 659 <object class="GtkSearchEntry" id="chats_search_entry"> 660 <property name="visible">1</property> 661 <property name="can-focus">1</property> 662 <property name="primary-icon-name">edit-find-symbolic</property> 663 <property name="primary-icon-activatable">0</property> 664 <property name="primary-icon-sensitive">0</property> 665 </object> 666 <packing> 667 <property name="expand">1</property> 668 </packing> 669 </child> 670 <style> 671 <class name="header-box"/> 672 </style> 673 </object> 674 <packing> 675 <property name="name">search_page</property> 676 <property name="position">1</property> 677 </packing> 678 </child> 679 </object> 680 </child> 681 <child> 682 <object class="GtkButton" id="user_details_button"> 683 <property name="visible">1</property> 684 <property name="can-focus">1</property> 685 <property name="receives-default">1</property> 686 <property name="relief">none</property> 687 <child> 688 <object class="GtkImage"> 689 <property name="visible">1</property> 690 <property name="icon-name">open-menu-symbolic</property> 691 </object> 692 </child> 693 </object> 694 </child> 695 <child> 696 <object class="GtkButton" id="chats_search_button"> 697 <property name="visible">1</property> 698 <property name="can-focus">1</property> 699 <property name="receives-default">1</property> 700 <property name="relief">none</property> 701 <child> 702 <object class="GtkStack" id="search_icon_stack"> 703 <property name="visible">1</property> 704 <child> 705 <object class="GtkImage"> 706 <property name="visible">1</property> 707 <property name="icon-name">edit-find-symbolic</property> 708 </object> 709 <packing> 710 <property name="name">title_page</property> 711 </packing> 712 </child> 713 <child> 714 <object class="GtkImage"> 715 <property name="visible">1</property> 716 <property name="icon-name">window-close-symbolic</property> 717 </object> 718 <packing> 719 <property name="name">search_page</property> 720 <property name="position">1</property> 721 </packing> 722 </child> 723 </object> 724 </child> 725 </object> 726 <packing> 727 <property name="pack-type">end</property> 728 <property name="position">1</property> 729 </packing> 730 </child> 731 </object> 732 <packing> 733 <property name="name">nav</property> 734 </packing> 735 </child> 736 <child> 737 <object class="HdyHeaderBar" id="main_bar"> 738 <property name="visible">True</property> 739 <property name="can-focus">False</property> 740 <property name="hexpand">True</property> 741 <property name="spacing">4</property> 742 <property name="show-close-button">True</property> 743 <property name="interpolate-size">True</property> 744 <child type="title"> 745 <object class="GtkStack" id="chat_title_stack"> 746 <property name="visible">1</property> 747 <property name="hexpand">1</property> 748 <property name="transition-type">slide-down</property> 749 </object> 750 </child> 751 </object> 752 <packing> 753 <property name="name">main</property> 754 </packing> 755 </child> 756 </object> 757 </child> 758 </object> 759 </child> 760 </object> 761 <object class="GtkSizeGroup"> 762 <property name="mode">vertical</property> 763 <widgets> 764 <widget name="nav_bar"/> 765 <widget name="main_bar"/> 766 </widgets> 767 </object> 768 <object class="GtkSizeGroup"> 769 <property name="mode">vertical</property> 770 <widgets> 771 <widget name="nav_box"/> 772 <widget name="main_box"/> 773 </widgets> 774 </object> 775 <object class="GtkSizeGroup"> 776 <widgets> 777 <widget name="new-contact-label"/> 778 <widget name="new-group-label"/> 779 <widget name="new-platform-label"/> 780 <widget name="contacts-label"/> 781 <widget name="settings-label"/> 782 </widgets> 783 </object> 784 <object class="GtkSizeGroup"> 785 <widgets> 786 <widget name="nav_box"/> 787 <widget name="nav_bar"/> 788 </widgets> 789 </object> 790 <object class="GtkSizeGroup"> 791 <widgets> 792 <widget name="main_box"/> 793 <widget name="main_bar"/> 794 </widgets> 795 </object> 796 <object class="HdyHeaderGroup"> 797 <headerbars> 798 <headerbar name="nav_bar"/> 799 <headerbar name="main_bar"/> 800 </headerbars> 801 </object> 802 </interface>