Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
509 commits
Select commit Hold shift + click to select a range
1c38389
Apply black formatting to Python demos
theCapypara Oct 29, 2023
d6ba644
Library: Port 'Tooltip' to Python (#729)
UrtsiSantsi Oct 30, 2023
45c27b3
Library: Port 'Toggle Button' to Python (#731)
UrtsiSantsi Oct 30, 2023
e5f2c19
python: Init GtkSource (#736)
theCapypara Oct 30, 2023
2a578bd
Library: Port 'Carousel' to Python (#719)
Oct 31, 2023
3bd86a8
Library: Port 'CSS Gradients' to Python (#724)
UrtsiSantsi Oct 31, 2023
b7963f6
Library: Port 'Color Dialog' to Python (#725)
Oct 31, 2023
622f846
library: Port Animation demo to Vala (#764)
Diego-Ivan Nov 1, 2023
ec7255b
library: Port Overlay Split View demo to Vala (#780)
Diego-Ivan Nov 2, 2023
dec1fb5
library: Port Text Colors demo to Vala (#778)
Diego-Ivan Nov 2, 2023
d0cbef4
library: Port Tab View demo to Vala (#772)
Diego-Ivan Nov 2, 2023
2e1aa4e
library: Port Navigation View demo to Vala (#768)
Diego-Ivan Nov 2, 2023
bf68fda
library: Move rust demos to new API (#784)
Hofer-Julian Nov 3, 2023
5448ac1
library: Port Open File demo to Vala (#783)
Diego-Ivan Nov 3, 2023
fe144cb
library: Port Avatar demo to Vala (#781)
Diego-Ivan Nov 3, 2023
2d6b781
library: Port Memory Monitor demo to Vala (#770)
Diego-Ivan Nov 3, 2023
0b027ce
library: Port Launcher demo to Vala (#765)
Diego-Ivan Nov 3, 2023
f1d5634
Library: Port 'Memory Monitor' to Python (#746)
Nov 3, 2023
e1e1ecb
library: Use a static model in the Column View demo (#773)
Diego-Ivan Nov 4, 2023
4a0b84f
Add Blueprint formatter support (#583)
sonnyp Nov 4, 2023
b92cfc8
library: Port Calendar demo to Vala (#790)
Diego-Ivan Nov 5, 2023
5dfacf6
javascript: Fix and extend Biome configuration (#786)
sonnyp Nov 5, 2023
c1356ec
library: Port Column View demo to Vala (#789)
Diego-Ivan Nov 5, 2023
7f91def
sonnyp/Workbench -> workbenchdev/Workbench
sonnyp Nov 5, 2023
28a3c68
Library: Simplify "Status Page" entry (#793)
UrtsiSantsi Nov 5, 2023
3f907eb
library: Port HTTP Request demo to Vala (#791)
Diego-Ivan Nov 5, 2023
59c2e5d
library: Simplify HTTP Request demo (#797)
Diego-Ivan Nov 6, 2023
f3ec7ed
library: Replace Pixbufs with Textures in HTTP Image demo (#796)
Diego-Ivan Nov 7, 2023
eb26ba5
library: Remove `Gdk.Pixbuf`-related APIs in HTTP Image Vala demo (#798)
Diego-Ivan Nov 7, 2023
760e613
library: Port Web View demo to Vala (#795)
Diego-Ivan Nov 8, 2023
c2f7a7b
Library: Port 'Video' to Python (#728)
UrtsiSantsi Nov 11, 2023
3b07213
Library: Port 'Text Fields' to Python (#734)
UrtsiSantsi Nov 11, 2023
db763a9
Library: Port 'Toolbar View' to Python (#730)
UrtsiSantsi Nov 11, 2023
d162786
Library: Port 'Tab View' to Python (#737)
UrtsiSantsi Nov 11, 2023
38438de
Library: Port 'Text View' to Python (#733)
UrtsiSantsi Nov 11, 2023
2f80307
Library: Port 'Text Colors' to Python (#735)
UrtsiSantsi Nov 11, 2023
a18e421
Library: Port 'Search' to Python (#742)
Nov 11, 2023
c965e14
Library: Port 'Color Picker' to Python (#741)
Nov 11, 2023
c4791fa
Library: Port 'Dialogs' to Python (#743)
Nov 11, 2023
edb0297
Library: Port 'Label' to Python (#747)
Nov 11, 2023
e4a1fa3
Library: Port 'Open File' to Python (#749)
Nov 11, 2023
e15822d
Library: Port 'Flow Box' to Python (#744)
Nov 11, 2023
f9a3f55
Library: Port 'Revealer' to Python (#748)
Nov 11, 2023
2b0cc4d
Library: Port 'Menu' to Python (#751)
Nov 11, 2023
3a1e925
Library: Port 'Switch' to Python (#753)
UrtsiSantsi Nov 11, 2023
38abe8b
Library: Port 'Stack' to Python (#755)
UrtsiSantsi Nov 11, 2023
cbfc53f
Port 'Picture' to Python (#767)
Nov 11, 2023
feaf074
Library: Port 'Power Profile Monitor' to Python (#782)
Nov 12, 2023
1ad5430
library: Remove Gdk.Pixbuf-related APIs in HTTP Image Rust demo (#799)
Diego-Ivan Nov 13, 2023
37730d5
Library: Port 'Spin Button' to Python (#756)
UrtsiSantsi Nov 13, 2023
6b2632b
Library: Port 'Source View' to Python (#757)
UrtsiSantsi Nov 13, 2023
5ad3781
Library: Port 'Preferences Window' to Python (#766)
Nov 13, 2023
b83a90a
Library: Port 'Clamp' to Python (#777)
Nov 13, 2023
e9cdfd2
Library: Port 'Banner' to Python (#776)
Nov 13, 2023
9262e89
Library: Port 'Save File' to Python (#775)
Nov 14, 2023
d49d518
Library: Port 'Action Bar' to Python (#774)
Nov 14, 2023
f291e73
Library: Port 'Scale' to Python (#769)
Nov 14, 2023
ba8afb2
Library: Port 'Spell Checker' to Python (#758)
UrtsiSantsi Nov 14, 2023
fe65c9c
Library: Port 'Select Folder' to Python (#771)
Nov 14, 2023
6612646
library: Port Avatar demo to Rust (#805)
theCapypara Nov 14, 2023
0f734bc
library: Add Actions Rust demo (#806)
Hofer-Julian Nov 14, 2023
d7b631f
Library: Write to file in Save File entry (#809)
sonnyp Nov 15, 2023
4709be1
Fix tests
sonnyp Nov 15, 2023
c2bdd89
Library: Port 'Wallpaper' to Python (#814)
Nov 18, 2023
b136fb1
Library: Port 'Overlay Split View' to Python (#815)
Nov 18, 2023
18e0fc1
Library: Port 'Email' to Python (#816)
Nov 18, 2023
e30cfea
Library: Port 'Account' to Python (#817)
Nov 18, 2023
f32a011
Library: Port 'Accessibility' to Python (#818)
Nov 19, 2023
1c76a8f
Add animation demo in Rust (#1)
Hofer-Julian Dec 9, 2023
ae45968
Add docs tooling and CI (#2)
sonnyp Dec 9, 2023
b725188
Animate to end position in parent (#28)
UrtsiSantsi Dec 9, 2023
34987fa
Library: Port 'Level Bars' to Python
Dec 9, 2023
746a0ce
Add Code of Conduct
sonnyp Dec 14, 2023
42188ab
Add context menu demo (#30)
UrtsiSantsi Dec 14, 2023
0f45df8
Port 'Contex Menu' demo to Rust (#32)
UrtsiSantsi Dec 15, 2023
af679c4
Port 'Contex Menu' demo to Vala (#34)
UrtsiSantsi Dec 15, 2023
a9d31b5
notification: Remove Vala placeholder file (#37)
Diego-Ivan Dec 16, 2023
b787136
Update documentation for Rust (#40)
sonnyp Dec 16, 2023
8bea24d
search: Port demo to Vala (#36)
Diego-Ivan Dec 17, 2023
5fb7f2c
grid: Port demo to Vala (#38)
Diego-Ivan Dec 17, 2023
f34edcb
accessibility: Port demo to Vala (#39)
Diego-Ivan Dec 17, 2023
b16f237
Fix 'Welcome' formatting (#35)
UrtsiSantsi Dec 18, 2023
288336c
list-view: Fix Vala demo errors (#44)
Diego-Ivan Dec 31, 2023
503b7f7
Format Vala code (#41)
sonnyp Jan 1, 2024
ef25613
Remove pre-commit hooks (#47)
sonnyp Jan 1, 2024
5af7001
Port 'Context Menu' demo to Python (#33)
UrtsiSantsi Jan 3, 2024
ca4bc5c
Enable workbench-cli ci and fix issues (#48)
sonnyp Jan 5, 2024
82ed6ca
Add HTTP Server demo (#50)
AkshayWarrier Jan 7, 2024
9f5d569
Add Column View Python demo (#46)
danyeaw Jan 8, 2024
f87bdd1
Port 'Drop Zone' demo to Python (#49)
rolandlo Jan 9, 2024
f190d9b
Remove deprecated ViewSwitcherTitle (#51)
Sahil-Shadwal Jan 11, 2024
4fae7ba
Fix formatting (#55)
sonnyp Jan 13, 2024
7a0a80c
Fix Open File demo (#57)
Sahil-Shadwal Jan 14, 2024
2e91e92
Fix Open File for Python and Vala (#58)
sonnyp Jan 14, 2024
cb18613
Port 'Screenshot' demo to Python (#54)
rolandlo Jan 14, 2024
b925da9
Port 'Event Controllers' demo to Python (#53)
rolandlo Jan 14, 2024
09f6ec4
Port 'Drag and Drop' demo to Python (#52)
rolandlo Jan 14, 2024
c92f1b3
Remove Workbench submodule
sonnyp Jan 17, 2024
df7aec0
Revert "Remove Workbench submodule"
sonnyp Jan 18, 2024
b67ffb3
Use Workbench flathub for testing / CI (#61)
sonnyp Jan 19, 2024
7e6c6bc
Open File: Add filter example (#60)
Sahil-Shadwal Jan 23, 2024
6229d45
Port 'Scrolled Window' demo to Python (#59)
rolandlo Jan 25, 2024
2fcb7bd
Improve FileDialog entries (#64)
sonnyp Jan 30, 2024
d4be697
Port 'HTTP Image' demo to Python (#62)
rolandlo Feb 8, 2024
71ada19
Port 'HTTP Request' demo to Python (#69)
rolandlo Feb 11, 2024
d793766
Port 'HTTP Server' demo to Python (#70)
rolandlo Feb 11, 2024
9a6645b
Port 'Font Dialog' demo to Python (#75)
rolandlo Feb 11, 2024
6495014
Port 'Box' demo to Python (#76)
rolandlo Feb 11, 2024
a183798
Port 'Frame' demo to Python (#77)
rolandlo Feb 11, 2024
ac2f2fb
Port 'Grid' demo to Python (#78)
rolandlo Feb 11, 2024
b27dc65
Port 'Web View' demo to Python (#72)
rolandlo Feb 11, 2024
7752c88
Simplify WebSocket Client (#79)
sonnyp Feb 11, 2024
9a79900
docs: add Style Guide and learning material for Vala (#81)
lw64 Feb 11, 2024
e4e2034
Make Diego Ivan codeowner for Vala demos (#82)
lw64 Feb 11, 2024
52d2870
websocket-client: Fixes and improvements to Vala code (#83)
Diego-Ivan Feb 11, 2024
db188b5
Fix HTTP Image demo for Rust (#101)
Hofer-Julian Feb 15, 2024
aff3c8e
Port 'Network Monitor' demo to Python (#86)
rolandlo Feb 15, 2024
27f48a9
Port 'Navigation View' demo to Python (#87)
rolandlo Feb 15, 2024
2d03b97
Port 'Launcher' demo to Python (#93)
rolandlo Feb 15, 2024
9d784a2
Port 'Audio' demo to Python (#95)
rolandlo Feb 15, 2024
969d4e4
Port 'Map' demo to Python (#94)
rolandlo Feb 15, 2024
94c529d
Port 'File Monitor' demo to Python (#90)
rolandlo Feb 15, 2024
b73e057
String fixes (#104)
Feb 18, 2024
34f0387
Port 'WebSocket Client' demo to Python (#73)
rolandlo Feb 19, 2024
f73c8d0
Port 'Screencast' demo to Python (#84)
rolandlo Feb 19, 2024
fdab209
Port 'Progress Bar' demo to Python (#85)
rolandlo Feb 19, 2024
6c657ba
Port demos to GNOME 46 (#71)
sonnyp Feb 21, 2024
a55e79e
style-guide: Include style guidelines for Vala. (#108)
Diego-Ivan Feb 21, 2024
50db207
source-view: Improvements to Vala demo (#106)
Diego-Ivan Feb 21, 2024
48fe1b0
Fix placeholder-text strings (#105)
Feb 21, 2024
d7ef083
demos: port 'Checkboxes' demo to Vala (#112)
BharatAtbrat Feb 27, 2024
8e5e7d8
demos: port Action Bar to vala (#111)
BharatAtbrat Feb 27, 2024
b3022c6
Port 'Camera' demo to Python (#91)
rolandlo Feb 29, 2024
deb429a
Port 'Location' demo to Python (#89)
rolandlo Feb 29, 2024
24e6853
Port 'List Model' demo to Python (#97)
rolandlo Feb 29, 2024
47ac82e
Port 'Drop Down' demo to Python (#98)
rolandlo Feb 29, 2024
a749b0b
Port 'Drawing Area' demo to Python (#92)
rolandlo Feb 29, 2024
b2885a0
Port 'Session Monitor and Inhibit' demo to Python (#100)
rolandlo Feb 29, 2024
6c3c514
Port View Switcher to python (#109)
imhemish Feb 29, 2024
faf2353
drop-zone: Fixes and improvements to Vala code (#99)
Diego-Ivan Mar 1, 2024
99ca3e4
Use Workbench beta for CI (#116)
sonnyp Mar 2, 2024
ce1e25a
demos: port 'Clamp' demo to Vala (#113)
BharatAtbrat Mar 2, 2024
b99f536
dialogs: Fixes and Improvements to Vala demo (#107)
Diego-Ivan Mar 2, 2024
cd29e80
Port "Banner" to Vala (#115)
imhemish Mar 2, 2024
77f2822
demos: port 'Emoji Chooser' demo to Vala (#114)
BharatAtbrat Mar 2, 2024
c47d305
Update Python demos to pass ruff (#117)
theCapypara Mar 4, 2024
984ab73
Move demos to src
sonnyp Mar 7, 2024
5bcbfb3
Add 'Snapshot' demo (#103)
rolandlo Mar 8, 2024
c32bb20
Wrap ListView and GridView in ScrolledWindow (#120)
Rirusha Mar 15, 2024
917d831
Simplify List View Widgets (#122)
sonnyp Mar 16, 2024
20cfcef
Various fixes and improvements ahead of 46 (#123)
sonnyp Mar 17, 2024
b6a871a
style-guide: Add Logging section for Vala (#126)
Diego-Ivan Mar 20, 2024
e705f1d
Radio Buttons: Port to Vala (#125)
manasrai1406 Mar 23, 2024
7052075
Workbench 46 (#127)
sonnyp Mar 23, 2024
c8e99f7
Split List View Widgets into "List View" and "Grid View" (#124)
BharatAtbrat Mar 23, 2024
b4dd1ea
Switch: Port to Vala (#130)
manasrai1406 Mar 24, 2024
5c555e7
Port Revealer demo to Vala (#132)
halfmexican Mar 27, 2024
6b9629b
Rust: Update Map demo (#135)
Hofer-Julian Mar 30, 2024
173e469
Port demo (#136)
halfmexican Mar 31, 2024
9a53b1d
Separator demo Port to Vala (#134)
manasrai1406 Apr 3, 2024
0217fe4
Add SVG demo (#140)
sonnyp Apr 12, 2024
5b35f2f
Only run workbench-cli ci on changed demos (#142)
sonnyp Apr 13, 2024
df67fda
Porting Level Bars Demo to Vala (#137)
Frogg1e Apr 13, 2024
809063c
Added search to the ComboRow in BoxedLists (#96)
Sahil-Shadwal Apr 13, 2024
f2f96fd
Ported Link Button Demo to Vala (#131)
urffsamhunt Apr 13, 2024
38a687d
Port 'Animation' to Python (#29)
UrtsiSantsi Apr 22, 2024
20c4fd3
Add Button Rows demo (#147)
jamiethecat Apr 27, 2024
80fe240
Button Row: Use sensitive instead of activatable
sonnyp Apr 27, 2024
ce8d764
Add icons to Welcome and Web View (#145)
sonnyp Apr 28, 2024
9ffc27e
Add Using Icons entry
sonnyp Apr 28, 2024
71fcb64
Fix missing icons
sonnyp Apr 29, 2024
152b606
Port 'Dialog' demo to Vala (#151)
BharatAtbrat May 28, 2024
8e5a8a0
Port 'Actions' demo to Vala (#153)
BharatAtbrat May 29, 2024
d6d217e
Port 'Dialog' demo to Python (#152)
BharatAtbrat Jun 1, 2024
f91f5cf
Port 'Frames' demo to Vala (#158)
BharatAtbrat Jun 6, 2024
540087a
Port 'Menu Button' to Vala (#160)
BharatAtbrat Jun 6, 2024
1c20bd4
Port 'Popovers' demo to Vala (#163)
BharatAtbrat Jun 6, 2024
3864dda
Port 'Spell Checker' demo to Vala (#165)
BharatAtbrat Jun 6, 2024
ffe0efa
Port 'Tooltip' demo to Vala (#167)
BharatAtbrat Jun 6, 2024
11b30e6
Port 'Toggle Button' demo to Vala (#166)
BharatAtbrat Jun 6, 2024
a2141bf
Port 'Network Monitor' demo to Vala (#162)
BharatAtbrat Jun 6, 2024
b7a7a09
demos: Port 'Select Folder' demo to Vala (#170)
BharatAtbrat Jun 8, 2024
a427eba
Port 'Font Dialog' to Vala (#161)
BharatAtbrat Jun 8, 2024
3524480
Port 'Drawing Area' demo to Vala (#154)
BharatAtbrat Jun 8, 2024
58d04eb
Port 'Power Profile Monitor' demo to Vala (#164)
BharatAtbrat Jun 9, 2024
747fa4e
Port 'Label' demo to Vala (#159)
BharatAtbrat Jun 9, 2024
51e5765
Port 'Progress Bar' demo to Vala (#168)
BharatAtbrat Jun 9, 2024
86ef030
Port 'Spin Button' demo to Vala (#171)
BharatAtbrat Jun 9, 2024
1ff9605
Port 'Save File' demo to Vala (#169)
BharatAtbrat Jun 9, 2024
a95c432
Port 'Session Monitor and Inhibit' to Vala (#176)
BharatAtbrat Jun 14, 2024
6a74083
Port 'Map' demo to Vala (#174)
BharatAtbrat Jun 14, 2024
12fe3fc
Port 'HTTP Server' demo to Vala (#173)
BharatAtbrat Jun 14, 2024
9dad1c3
Port 'Menu' demo to Vala (#172)
BharatAtbrat Jun 14, 2024
bb5df9b
Port 'Scrolled Window' demo to Vala (#178)
BharatAtbrat Jun 16, 2024
0db0113
Use Blueprint to create the GtkSourceView (#182)
sonnyp Jun 24, 2024
644fb6b
Port 'File Monitor' demo to Vala (#175)
BharatAtbrat Jun 25, 2024
f0e3559
Fix CI by using Workbench devel (#189)
sonnyp Jul 16, 2024
10e8a8f
Specify Gtk version 4
sonnyp Jul 19, 2024
0d46b4f
Specify Gdk version 4
sonnyp Jul 19, 2024
9bfd2be
[Rust] Audio demo (#193)
ondrejkolin Aug 5, 2024
b01dc34
[Rust] Frame demo ported (#195)
ondrejkolin Aug 6, 2024
be31107
[Rust] Port the ListView demo (#198)
ondrejkolin Aug 6, 2024
2cdc1c1
[Rust] Clamp example (#194)
ondrejkolin Aug 8, 2024
c826864
[Rust] Column View demo ported (#196)
ondrejkolin Aug 16, 2024
f0e9e69
[Rust] Ported the TextFields demo (#199)
ondrejkolin Aug 16, 2024
3d05940
[Rust] Ported Level Bars demo (#197)
ondrejkolin Aug 16, 2024
3e727f0
Python: Update ColumnView to use Expressions (#191)
danyeaw Sep 20, 2024
b3982bb
Workbench 47
sonnyp Sep 23, 2024
31fa171
Fix JS Camera and Screencast demos
sonnyp Sep 23, 2024
286ba65
Change category of Welcome to tools
sonnyp Sep 26, 2024
4f6a21a
Add permissions to metadata
sonnyp Sep 26, 2024
6a9de43
Add network permission to Web View
sonnyp Sep 26, 2024
2a6b18d
Port 'CSS Gradients' demo to Vala (#155)
BharatAtbrat Sep 26, 2024
cda16c2
Update Spinner demo to AdwSpinner (#205)
sonnyp Sep 26, 2024
13af95a
Ignore rustc-ice files
sonnyp Oct 3, 2024
66c219c
List View: Port to python (#208)
Nokse22 Oct 8, 2024
8d80a9a
Added list view section demo (#206)
Nokse22 Oct 8, 2024
34d9c65
Grid View: Port to Python (#209)
Nokse22 Oct 8, 2024
92dcc5f
Port 'Snapshot' demo to Vala (#179)
BharatAtbrat Oct 9, 2024
9a621df
Add "Gamepad" demo (#88)
halfmexican Oct 9, 2024
62f9ece
Add Bottom Sheet demo (#210)
Nokse22 Oct 9, 2024
b0faf68
Add "List View with a Tree" demo (#207)
Nokse22 Oct 9, 2024
db555f7
Remove unused JavaScript imports
sonnyp Oct 9, 2024
9ad259c
Port "Gamepad" to python (#211)
Nokse22 Oct 9, 2024
fae40ed
Port missing List View demos to JavaScript (#212)
sonnyp Oct 10, 2024
c4ee997
Add GOM demo (#200)
BharatAtbrat Oct 19, 2024
6b86bd9
Use 'my_custom_class" for the programmaticaly set style (#214)
UrtsiSantsi Oct 31, 2024
528b715
List View: Remove unused Stack and StackPage (#219)
UrtsiSantsi Nov 12, 2024
f53216e
Database: Remove unused search by id field
sonnyp Nov 12, 2024
a63852e
Port 'Database' demo to Python (#218)
rolandlo Dec 1, 2024
739b004
Fix Column View Python impl: sorting in year column (#220)
rolandlo Dec 18, 2024
6f3c2a2
Use CSS variables instead of GTK-specific syntax (#221)
UrtsiSantsi Jan 24, 2025
bc657cb
Update libsoup API URL (#226)
largestgithubuseronearth Mar 6, 2025
8ac7b84
Add demo for Shortcuts Window (#225)
sudhanshuv1 Mar 8, 2025
a550292
Reformat files with Blueprint 0.16
sonnyp Mar 8, 2025
3f500a2
Remove unwanted Gtk.init
sonnyp Mar 9, 2025
e4b515e
Add TypeScript types and port Welcome demo (#227)
sonnyp Mar 11, 2025
659190e
Shortcuts Window: Use <Control> instead of <Primary>
sonnyp Mar 11, 2025
cd8b209
Pango Markup: Use double quotes for gettext
sonnyp Mar 13, 2025
4fb84dd
Window: Make header bar flat (#231)
turtlegarden Oct 7, 2025
ff501ad
Event Controller: Set propagation phase to capture (#223)
UrtsiSantsi Oct 7, 2025
5efa50c
Email: Add input purpose for entry field (#234)
vanillajonathan Oct 7, 2025
f27fc63
Update sdks for Workbench 50
sonnyp Apr 27, 2026
06e0ae3
Menu Button: Wrap long label (#237)
UrtsiSantsi Apr 27, 2026
7b6ee2e
Update blueprint compiler URL
sonnyp May 19, 2026
b74e83e
Correct network flatpa-finish-args
sonnyp May 19, 2026
0519ee1
Column View: Make it scrollable
sonnyp May 20, 2026
d49188e
Fix a bunch of issues with Workbech 50
sonnyp Jun 1, 2026
cdbf286
Remove submodule demos
sonnyp Sep 28, 2026
d8d0491
Add 'demos/' from commit 'd49188e6441d7103304d29739672101db1b95cae'
sonnyp Sep 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
[submodule "troll"]
path = troll
url = https://github.com/sonnyp/troll.git
[submodule "demos"]
path = demos
url = https://github.com/workbenchdev/demos.git
[submodule "src/langs/typescript/template/gi-types"]
path = gi-types
url = https://gitlab.gnome.org/BrainBlasted/gi-typescript-definitions.git
Expand Down
1 change: 0 additions & 1 deletion demos
Submodule demos deleted from d49188
23 changes: 23 additions & 0 deletions demos/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# EditorConfig is awesome: http://EditorConfig.org

root = true

[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
trim_trailing_whitespace = true
indent_style = space
indent_size = 2

[{Makefile,**.mk}]
indent_style = tab

[*.py]
indent_size = 4

[*.rs]
indent_size = 4

[*.vala]
indent_size = 4
6 changes: 6 additions & 0 deletions demos/.github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
* @sonnyp
*.vala @lw64 @Diego-Ivan
*.rs @Hofer-Julian
Cargo.toml @Hofer-Julian
Cargo.lock @Hofer-Julian
*.py @theCapypara
40 changes: 40 additions & 0 deletions demos/.github/workflows/CI.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: CI

on:
pull_request:
branches: [main]

jobs:
CI:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # required for make test
submodules: "recursive"

- name: Install host dependencies
run: |
sudo apt-get update
sudo apt-get install flatpak flatpak-builder mutter

# Restore caches
- name: Restore Flatpak dependencies
uses: actions/cache/restore@v3
with:
path: ~/.local/share/flatpak
key: ${{ runner.os }}-flatpak-dependencies-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-flatpak-dependencies-

- run: mutter --wayland --no-x11 --headless --wayland-display=wayland-0 --virtual-monitor 1280x720 > /tmp/mutter.log 2>&1 &
- run: make ci
- run: cat /tmp/mutter.log

# Save caches
- name: Save Flatpak dependencies
uses: actions/cache/save@v3
if: always()
with:
path: ~/.local/share/flatpak
key: ${{ runner.os }}-flatpak-dependencies-${{ github.run_id }}
43 changes: 43 additions & 0 deletions demos/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
.flatpak
.flatpak-builder
build
builddir
/flatpak
node_modules
repo
install
.eslintcache
*~
*.compiled
*.flatpak
.fenv
.venv
__pycache__
*.pyc

# IDEs / editors
.idea
.vscode

# compiled typescript
out

# extra GIRs from Workbench
workbench-girs

# Project files - sync with Makefile
src/*/settings
src/*/workbench.vala
src/*/main.ui
src/*/libworkbenchcode.so
src/*/__pycache__
src/*/Cargo.lock
src/*/Cargo.toml
src/*/lib.rs
src/*/workbench.rs
src/*/target
src/*/*.gresource
src/*/*.gresource.xml
src/*/jsconfig.json
src/*/rustc-ice-*.txt
src/*/*.sqlite*
130 changes: 130 additions & 0 deletions demos/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
# Contributing

Thank you for considering contributing. Feel free to [get in touch](https://matrix.to/#/%23workbench:gnome.org).

## Getting started

1. [Install Workbench from Flathub](https://flathub.org/apps/re.sonny.Workbench)
2. Go through the Welcome Library entry

## Introduction

If you're completely new to GNOME development this is for you.

Open the "Welcome" example from Workbench Library.

Important fundamentals are

- objects
- properties
- signals

Every widget in GTK is an object. For example, `Gtk.Box`, `Gtk.Button`, ...

Properties affect an object to change its appearance or behavior.

Signals are events that can be listened to. Like `clicked` on `Gtk.Button`.

The Welcome example in the Library has all 3. Play with it, try to understand and make changes. If you break things you can always go back by select "Welcome" example from the Workbench Library again.

Once you understand these 3 things, try creating something new. There are plenty of widgets and patterns to explore.

## Contributing a new demo

Library entries have 3 functions

1. Showcase the capabilities of the platform
2. Teach how to use the APIs, patterns and widgets
3. Provide functional snippets ready to use

Pick a widget and make a Library demo for it within Workbench directly.

Check [here for ideas](https://github.com/workbenchdev/demos/issues/3).

Some guidelines

- Start with something small and accessible
- Focus on quality over quantity
- Make sure you don't pick something deprecated
- Select "Blueprint" instead of "XML" in the UI panel
- Keep it concise and interactive
- Add links to follow up on the topic covered
- Follow the patterns of existing entries
- Follow [the Style Guide](./STYLEGUIDE.md)

⚠️ If you are contributing to Rust please do the following:

```sh
cd demos
flatpak override --user --filesystem=$PWD re.sonny.Workbench
# restart Workbench
```

## Create Library entry

To create a new Library entry, duplicate an existing one and proceed to the next section.

```sh
cp -r src/Button src/Something
```

### Update Library entry

To update or port an existing Library entry

1. Open Workbench
2. Select "Open Project…" in the menu
3. Select the corresponding demo folder, for example `src/Something`
4. Make the changes

## Submitting a contribution

Once you're satisfied with the result - you can send a pull request to include it in in this repository and Workbench.

Some guidelines:

- One pull request per Library entry
- Use a short PR title - eg. "Add Video entry" - it will be used as commit message
- If relevant, mention the related issue in the PR description
- Always review your own work before asking someone else

## Running tests

When you submit a PR and after approval, a GitHub workflow will trigger a series of tests.
You can run tests locally with

```sh
# Ubuntu requirements
# sudo apt install flatpak flatpak-builder make
# Fedora requirements
# sudo dnf install flatpak flatpak-builder make
make setup

make test
```

## Learn

Here is a compilation of resources to learn more about the GNOME platform.

- [Workbench](https://github.com/workbenchdev/Workbench) 😉
- [Human Interface Guidelines](https://developer.gnome.org/hig/)

### JavaScript

- [GObject](https://gjs.guide/guides/gobject/basics.html#gobject-construction)
- [GTK4 + GJS Book](https://rmnvgr.gitlab.io/gtk4-gjs-book/)
- [Asynchronous programming](https://gjs.guide/guides/gjs/asynchronous-programming.html)
- [API references](https://gjs-docs.gnome.org/) make sure to enable at least GTK, GJS, GLib, Gio
- [GJS docs](https://gitlab.gnome.org/GNOME/gjs/-/tree/master/doc)
- [GJS examples](https://gitlab.gnome.org/GNOME/gjs/-/tree/master/examples)

### Vala

- [Valadoc.org](https://valadoc.org)
- [Vala tutorial](https://wiki.gnome.org/Projects/Vala/Tutorial)
- [Vala examples](https://wiki.gnome.org/Projects/Vala/Examples)

### Python

- [PyGObject Docs](https://pygobject.gnome.org)
29 changes: 29 additions & 0 deletions demos/COPYING
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Creative Commons Legal Code

CC0 1.0 Universal

CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER.

Statement of Purpose

The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work").

Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others.

For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights.

1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and
vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work.
d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.
45 changes: 45 additions & 0 deletions demos/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
SHELL:=/bin/bash -O globstar
.PHONY: setup test ci
.DEFAULT_GOAL := ci

setup:
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --or-update --user --noninteractive flathub org.freedesktop.Sdk.Extension.rust-stable//25.08 org.freedesktop.Sdk.Extension.vala//25.08 org.freedesktop.Sdk.Extension.node24//25.08 org.freedesktop.Sdk.Extension.typescript//25.08
# flatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
flatpak remote-add --user --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
flatpak install --or-update --user --noninteractive gnome-nightly re.sonny.Workbench.Devel

format:
# npx prettier --write src/*/*.json
flatpak run --command="workbench-cli" --filesystem=host re.sonny.Workbench.Devel format javascript src/*/*.js
flatpak run --command="workbench-cli" --filesystem=host re.sonny.Workbench.Devel format css src/*/*.css
flatpak run --command="workbench-cli" --filesystem=host re.sonny.Workbench.Devel format python src/*/*.py
flatpak run --command="workbench-cli" --filesystem=host re.sonny.Workbench.Devel format rust src/*/*.rs
flatpak run --command="workbench-cli" --filesystem=host re.sonny.Workbench.Devel format blueprint src/*/*.blp
flatpak run --command="workbench-cli" --filesystem=host re.sonny.Workbench.Devel format vala src/*/*.vala

test:
# list folders that have changed and run workbench-cli ci on them
# $$ is for the Makefile only - use $ otherwise
git diff --name-only origin/main src | awk -F/ '{print $$1 FS $$2}' | uniq | xargs -d '\n' flatpak run --command="workbench-cli" --filesystem=host re.sonny.Workbench.Devel ci

all:
flatpak run --command="workbench-cli" --filesystem=host re.sonny.Workbench.Devel ci src/*

ci: setup test

# Sync with .gitignore
clean:
rm -f src/*/settings
rm -f src/*/workbench.vala
rm -f src/*/main.ui
rm -f src/*/libworkbenchcode.so
rm -f src/*/Cargo.toml
rm -f src/*/Cargo.lockfile
rm -f src/*/lib.rs
rm -f src/*/workbench.rs
rm -f src/*/jsconfig.json
rm -f src/*/*.gresource
rm -f src/*/*.gresource.xml
rm -rf src/*/target
rm -rf src/*/__pycache__
41 changes: 41 additions & 0 deletions demos/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Demos

This is the repository containing the Library demos of [Workbench](https://github.com/workbenchdev/Workbench).

## Contributing

1. [Install Workbench](https://flathub.org/apps/re.sonny.Workbench)
2. Clone/fork this repository
3. In Workbench menu select "Open Project"
4. Open one of the directory under [src](./src)
5. Make changes
6. Open a pull request

---

⚠️ If you are contributing to Rust please do the following:

```sh
cd demos
flatpak override --user --filesystem=$PWD re.sonny.Workbench
# restart Workbench
```

For more details see [CONTRIBUTING.md](./CONTRIBUTING.md).

## Code of conduct

Workbench follows the [GNOME Code of Conduct](https://conduct.gnome.org/).

- **Be friendly.** Use welcoming and inclusive language.
- **Be empathetic.** Be respectful of differing viewpoints and experiences.
- **Be respectful.** When we disagree, we do so in a polite and constructive manner.
- **Be considerate.** Remember that decisions are often a difficult choice between competing priorities.
- **Be patient and generous.** If someone asks for help it is because they need it.
- **Try to be concise.** Read the discussion before commenting.

## License

[CC0 - Public domain](https://creativecommons.org/public-domain/cc0/)

See [COPYING](./COPYING)
Loading
Loading