1,078 Commits over 700 Days - 0.06cph!
Force update title bar whenever title or icon changes
Make compile error dialog paths slightly more readable
Frameless window fixes for hi-DPI monitors
Custom window frames (#1858)
https://files.facepunch.com/alexguthrie/1b1911b1/explorer_7y8xswGpWU.png
Account for (lack of) margin inside FullScreenManager so that fullscreened game view doesn't look like shit
Initial custom window frames
Add profile flyout button
Make things look pretty
Split TitleBar.cs up, remove unused
System window manager handles everything, but we draw our own titlebar buttons for consistency
Make CFramelessMainWindow the only frameless window type, pass widgets in for hit testing
Replace TitleBarStyle with paint overrides, so windows can do whatever they want
Clean up
Stick a massive logo on main window
https://files.facepunch.com/alexguthrie/1b1811b1/explorer_6ZDckeWpaV.png
Looks shit so let's make it smaller
This should fix the crap that happens when we move the window across monitors
Fix native tools crash
Draw titlebar icon without any additional processing
Finishing touches
Add resize handles around title bar
Move QApplication::setAttribute call into toolframework2
Native tools have an icon in the top left
Don't override titlebar paint in main window
Detect Windows version and use correct window icons for current version
Clean up native code, demote managed, remove unused
Shrink status bar
Adjust icon rendering
https://files.facepunch.com/alexguthrie/1b1911b1/sbox-dev_K4AWOOHxCj.png
Adjust icon rendering
https://files.facepunch.com/alexguthrie/1b1911b1/sbox-dev_K4AWOOHxCj.png
Add resize handles around title bar
Move QApplication::setAttribute call into toolframework2
Native tools have an icon in the top left
Don't override titlebar paint in main window
Detect Windows version and use correct window icons for current version
Clean up native code, demote managed, remove unused
Shrink status bar
Draw titlebar icon without any additional processing
This should fix the crap that happens when we move the window across monitors
Looks shit so let's make it smaller
Stick a massive logo on main window
https://files.facepunch.com/alexguthrie/1b1811b1/explorer_6ZDckeWpaV.png
Initial custom window frames
Add profile flyout button
Make things look pretty
Split TitleBar.cs up, remove unused
System window manager handles everything, but we draw our own titlebar buttons for consistency
Make CFramelessMainWindow the only frameless window type, pass widgets in for hit testing
Replace TitleBarStyle with paint overrides, so windows can do whatever they want
Clean up
Pass widgets into native CFramelessMainWindow for hit testing against rects, remove frameless stuff from QWidget
Fix nc hit test not returning properly
use frameWidth
Scale pixmap on set
BaseWindows are just normal windows, not frameless ones
Work around stupid windows hit test behaviour blocking mouse events when NCHITTEST != HTNOWHERE
Don't need this logging now that everything works
Remove TitleBarStyle
Test titlebar overrides, so we can eventually draw a big fuck off logo in the top left
Fix menu bar looking terrible
Add profile flyout button
Make things look pretty
Clean up, split TitleBar.cs up, remove unused
System window manager handles everything, but we draw our own titlebar buttons for consistency
Initial custom window frames
Add profile flyout button
Make things look pretty
Clean up, split TitleBar.cs up, remove unused
System window manager handles everything, but we draw our own titlebar buttons for consistency
Initial custom window frames
Add profile flyout button
Make things look pretty
Clean up, split TitleBar.cs up, remove unused
System window manager handles everything, but we draw our own titlebar buttons for consistency
Clean up more stuff in Window
Thicken status bar
Disable default window controls, but keep their functions intact (so we can draw the buttons ourselves without overlapping)
New profile popout
https://files.facepunch.com/alexguthrie/1b1711b1/explorer_qSGqzPUmRl.png
Don't need to ifdef these
I don't think we need any of this, let's get rid
We do want windows to match qt size
Start experimenting with switching over to just having DWM do everything
Qt sux and I'd rather just let the window manager handle stuff instead
Don't set window style
Make compile error dialog paths slightly more readable
Initial custom window frames v2
Initial titlebar buttons, just used for layout at the moment
Make it so titlebar handles mouse events, title label is transparent to mouse events
Style tweaks
Slim titlebar test (personally not a fan)
Link to orgs in account flyout
Methods with TitleBarButton attribute get caller as parameter
System window manager handles moving window, gives us aero snap etc
Split TitleBar.cs up
Refactor non-client hit tests
Make compile error dialog paths slightly more readable
Initial custom window frames v2
Initial titlebar buttons, just used for layout at the moment
Make it so titlebar handles mouse events, title label is transparent to mouse events
Style tweaks
Slim titlebar test (personally not a fan)
Link to orgs in account flyout
Methods with TitleBarButton attribute get caller as parameter
System window manager handles moving window, gives us aero snap etc
Split TitleBar.cs up
Refactor non-client hit tests
Start refactoring non-client hit tests, but even though we're doing the same thing, this now acts differently, for whatever reason
It's because we changed margins, so change it back
Native cleanup
Clear margins when window isn't maximized for sexier window controls
https://files.facepunch.com/alexguthrie/1b1411b1/explorer_DbcrjLTuhA.png
Check if we have maximize/minimize boxes before checking if pointer is inside them
Split TitleBar.cs up
See if we can do snap layout support
We can but it's a pain in the ass and doesn't quite work how I want it to
https://files.facepunch.com/alexguthrie/1b1411b1/explorer_EkeUR6XCKt.png
System window manager handles moving window, gives us aero snap etc
https://files.facepunch.com/alexguthrie/1b1411b1/lSatfk6v73.mp4
AuxiliaryButton -> TitleBarButton
Methods with auxiliary button attribute get caller as parameter
Link to orgs in account flyout
https://files.facepunch.com/alexguthrie/1b1311b1/sbox-dev_0NGXYxcapp.png
Slim titlebar has no minimize/maximize
Red color for close button
Slim titlebar test (personally not a fan)
https://files.facepunch.com/alexguthrie/1b1311b1/explorer_izANZMwEXz.png
Forget it
Menu bar style tweaks
https://files.facepunch.com/alexguthrie/1b1311b1/sbox-dev_tdHsQSldVw.png
Make it so titlebar handles mouse events, title label is transparent to mouse events
Change maximize icon on maximize
Disable maximizing on windows that can't do it (dialogs)
Turn this into a popup instead of just a menu
https://files.facepunch.com/alexguthrie/1b1311b1/explorer_rsmj8rxLw5.png
Initial auxiliary buttons, just used for layout at the moment
https://files.facepunch.com/alexguthrie/1b1311b1/explorer_xSDxuoqmSL.png
Un-fuck this
Instead of doing dumb layout stuff as an auxiliary button, add a profile section
Links to docs, api, etc
https://files.facepunch.com/alexguthrie/1b1311b1/explorer_kTdj5z2eoE.mp4
Make compile error dialog paths slightly more readable
Change font globally to Inter to see if it looks smoother
Custom window frames v2
Uses dwm calls instead of Qt frameless windows to preserve some system
window decorations (border, shadow)
https://files.facepunch.com/alexguthrie/1b1311b1/sbox-launcher_ba2t9H4VPt.png
CFramelessMainWindow uses dwm calls too
https://files.facepunch.com/alexguthrie/1b1311b1/explorer_64qvsu25BU.jpg
Launcher: clean up UI, make a few things contextual rather than showing everything all at once
https://files.facepunch.com/alexguthrie/1b1111b1/explorer_2JWhMC4P0r.mp4
Sweeper .sbproj update
Forgot to commit this with the object-fit stuff
UI: add support for `object-fit`, move aspect ratio code into source text template
Added `Color.LerpTo` for consistency with `Vector3.LerpTo`, `Rotation.LerpTo`, etc.
UI: linear gradients use premultiplied interpolation in & have quadratic easing on alpha channel to more closely match web
https://files.facepunch.com/alexguthrie/1b0611b1/sbox-dev_YziN6zZgp3.png
Asset browser: Fix drag-dropping of files from explorer onto asset browser, don't allow inside cloud browser
Cloud browser: update list after uninstalling a package
Don't reference `facepunch.concrete_barrier` inside `default.surface` 🙈
Cloud browser: allow setting default view, shows when cloud browser initialises, persists between sessions
https://files.facepunch.com/alexguthrie/1b0511b1/sbox-dev_x9RRYJZp8G.mp4
Standalone: initial support for /unsafe, clean up compiler options, rework project settings stuff to use "Standalone Only" instead of "Whitelist Enabled"
Pressing Attack2 will also cancel reload
DeathmatchDamageInfo defaults
Gluon gun uses damage proportional to how much time has actually passed relative to interval
Buff hornet projectile speed
Implement explicit damage types - crush, bullet, explosion, generic - so we can ragdoll and gib correctly
GenerateMipMaps shouldn't generate mips smaller than 1x1 (which might happen on textures with weird dimensions, e.g. 3x3)
UI: support border-radius shorthand transitions