mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-07 00:02:39 +08:00
WIP: Basics of window drag
This commit is contained in:
parent
3c7937bff9
commit
6bdcec8105
@ -97,6 +97,7 @@ struct Application {
|
|||||||
id wkwebview;
|
id wkwebview;
|
||||||
id manager;
|
id manager;
|
||||||
id config;
|
id config;
|
||||||
|
id mouseEvent;
|
||||||
|
|
||||||
// Window Data
|
// Window Data
|
||||||
const char *title;
|
const char *title;
|
||||||
@ -213,7 +214,9 @@ void messageHandler(id self, SEL cmd, id contentController, id message) {
|
|||||||
Show(app);
|
Show(app);
|
||||||
msg(app->config, s("setValue:forKey:"), msg(c("NSNumber"), s("numberWithBool:"), 0), str("suppressesIncrementalRendering"));
|
msg(app->config, s("setValue:forKey:"), msg(c("NSNumber"), s("numberWithBool:"), 0), str("suppressesIncrementalRendering"));
|
||||||
});
|
});
|
||||||
|
} else if( strcmp(name, "windowDrag") == 0 ) {
|
||||||
|
Debug("DRAGGING!!!!!");
|
||||||
|
msg(app->mainWindow, s("performWindowDragWithEvent:"), app->mouseEvent);
|
||||||
} else {
|
} else {
|
||||||
const char *m = (const char *)msg(msg(message, s("body")), s("UTF8String"));
|
const char *m = (const char *)msg(msg(message, s("body")), s("UTF8String"));
|
||||||
app->sendMessageToBackend(m);
|
app->sendMessageToBackend(m);
|
||||||
@ -571,6 +574,18 @@ void DisableFrame(struct Application *app)
|
|||||||
app->frame = 0;
|
app->frame = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setMinMaxSize(struct Application *app)
|
||||||
|
{
|
||||||
|
if (app->maxHeight > 0 && app->maxWidth > 0)
|
||||||
|
{
|
||||||
|
msg(app->mainWindow, s("setMaxSize:"), CGSizeMake(app->maxWidth, app->maxHeight));
|
||||||
|
}
|
||||||
|
if (app->minHeight > 0 && app->minWidth > 0)
|
||||||
|
{
|
||||||
|
msg(app->mainWindow, s("setMinSize:"), CGSizeMake(app->minWidth, app->minHeight));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void SetMinWindowSize(struct Application *app, int minWidth, int minHeight)
|
void SetMinWindowSize(struct Application *app, int minWidth, int minHeight)
|
||||||
{
|
{
|
||||||
app->minWidth = minWidth;
|
app->minWidth = minWidth;
|
||||||
@ -628,18 +643,6 @@ void disableBoolConfig(id config, const char *setting) {
|
|||||||
msg(msg(config, s("preferences")), s("setValue:forKey:"), msg(c("NSNumber"), s("numberWithBool:"), 0), str(setting));
|
msg(msg(config, s("preferences")), s("setValue:forKey:"), msg(c("NSNumber"), s("numberWithBool:"), 0), str(setting));
|
||||||
}
|
}
|
||||||
|
|
||||||
void setMinMaxSize(struct Application *app)
|
|
||||||
{
|
|
||||||
if (app->maxHeight > 0 && app->maxWidth > 0)
|
|
||||||
{
|
|
||||||
msg(app->mainWindow, s("setMaxSize:"), CGSizeMake(app->maxWidth, app->maxHeight));
|
|
||||||
}
|
|
||||||
if (app->minHeight > 0 && app->minWidth > 0)
|
|
||||||
{
|
|
||||||
msg(app->mainWindow, s("setMinSize:"), CGSizeMake(app->minWidth, app->minHeight));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Run(void *applicationPointer, int argc, char **argv) {
|
void Run(void *applicationPointer, int argc, char **argv) {
|
||||||
struct Application *app = (struct Application*) applicationPointer;
|
struct Application *app = (struct Application*) applicationPointer;
|
||||||
|
|
||||||
@ -730,6 +733,15 @@ void Run(void *applicationPointer, int argc, char **argv) {
|
|||||||
if( app->frame == 0) {
|
if( app->frame == 0) {
|
||||||
msg(mainWindow, s("setTitlebarAppearsTransparent:"), YES);
|
msg(mainWindow, s("setTitlebarAppearsTransparent:"), YES);
|
||||||
msg(mainWindow, s("setTitleVisibility:"), NSWindowTitleHidden);
|
msg(mainWindow, s("setTitleVisibility:"), NSWindowTitleHidden);
|
||||||
|
|
||||||
|
// Setup drag message handler
|
||||||
|
msg(manager, s("addScriptMessageHandler:name:"), delegate, str("windowDrag"));
|
||||||
|
// Add mouse event hooks
|
||||||
|
// msg(mainWindow, s("mouseDown:"), ^(id event) {
|
||||||
|
// Debug("Got mouse down event!!!!");
|
||||||
|
// app->mouseEvent = event;
|
||||||
|
// });
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Debug("setTitlebarAppearsTransparent %d", app->titlebarAppearsTransparent ? YES :NO);
|
Debug("setTitlebarAppearsTransparent %d", app->titlebarAppearsTransparent ? YES :NO);
|
||||||
msg(mainWindow, s("setTitlebarAppearsTransparent:"), app->titlebarAppearsTransparent ? YES : NO);
|
msg(mainWindow, s("setTitlebarAppearsTransparent:"), app->titlebarAppearsTransparent ? YES : NO);
|
||||||
@ -813,6 +825,4 @@ void Run(void *applicationPointer, int argc, char **argv) {
|
|||||||
free((void*)internalCode);
|
free((void*)internalCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -2,12 +2,13 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
wails "github.com/wailsapp/wails/v2"
|
wails "github.com/wailsapp/wails/v2"
|
||||||
|
"github.com/wailsapp/wails/v2/pkg/options"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
// Create application with options
|
// Create application with options
|
||||||
app := wails.CreateAppWithOptions(&wails.Options{
|
app := wails.CreateAppWithOptions(&options.App{
|
||||||
Title: "Frameless Demo",
|
Title: "Frameless Demo",
|
||||||
Width: 1024,
|
Width: 1024,
|
||||||
Height: 768,
|
Height: 768,
|
||||||
|
Loading…
Reference in New Issue
Block a user