aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2023-05-29 23:17:42 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2023-05-29 23:17:42 +0200
commit76ec9e7be4286a942975d07cbe84ea43a30e7b28 (patch)
tree8eadb1c1094e8299f217d219ac2707f18417fcae /src
parent031e3a53569db5caf3f066323be99d4932f0bbdb (diff)
downloadcherry-76ec9e7be4286a942975d07cbe84ea43a30e7b28.tar.gz
cherry-76ec9e7be4286a942975d07cbe84ea43a30e7b28.zip
Remove `dimension` from CherryWindow
Diffstat (limited to 'src')
-rw-r--r--src/window.c26
-rw-r--r--src/window.h4
2 files changed, 21 insertions, 9 deletions
diff --git a/src/window.c b/src/window.c
index 2c316da..a187d7c 100644
--- a/src/window.c
+++ b/src/window.c
@@ -70,6 +70,8 @@ cherry_window_new(void)
XSetBackground(app->display, w->gc, WhitePixel(app->display, app->screen));
XSetForeground(app->display, w->gc, BlackPixel(app->display, app->screen));
/* XSetForeground(app->display, w->gc, RGB(255,0,127)); */
+ cherry_widget_get_dimension((CherryWidget *) window, &width, &height);
+ cherry_widget_set_dimension((CherryWidget *) window, width + offset, height + offset);
clist_add(&(app->windows), w);
XSaveContext(app->display, w->window_handler, app->context, (XPointer) w);
@@ -114,15 +116,25 @@ cherry_window_set_title(CherryWindow *w, char *title)
}
void
-cherry_window_set_dimension(CherryWindow *w, int width, int height)
+cherry_window_get_dimension(CherryWindow *window, int *width, int *height)
{
- w->dimension->width = width;
- w->dimension->height = height;
+ CherryWidget *widget = (CherryWidget *) window;
+ cherry_widget_get_dimension(widget, width, height);
+}
- CherryApplication *app = cherry_application_get_running_app();
- XMoveResizeWindow(app->display, w->window_handler,
- w->x, w->y,
- w->dimension->width, w->dimension->height);
+void
+cherry_window_set_dimension(CherryWindow *window, int width, int height)
+{
+ CherryWidget *widget = (CherryWidget *) window;
+ cherry_widget_set_dimension(widget, width, height);
+
+ if (cherry_widget_is_visible(widget)) {
+ int x, y;
+ CherryApplication *app = cherry_application_get_running_app();
+ XMoveResizeWindow(app->display, window->window_handler,
+ x, y,
+ width, height);
+ }
}
void
diff --git a/src/window.h b/src/window.h
index 6906c04..e32b258 100644
--- a/src/window.h
+++ b/src/window.h
@@ -3,12 +3,11 @@
#ifndef __CHERRY_WINDOW_H__
#define __CHERRY_WINDOW_H__
-#include "dimension.h"
+#include "widget.h"
#include "event.h"
typedef struct CherryWindow {
char *title;
- CherryDimension *dimension;
int x, y;
int visible;
@@ -23,6 +22,7 @@ CherryWindow *cherry_window_new(void);
void cherry_window_dispose_on_exit(CherryWindow *);
char *cherry_window_get_title(CherryWindow *);
void cherry_window_set_title(CherryWindow *, char *);
+void cherry_window_get_dimension(CherryWindow *, int *, int *);
void cherry_window_set_dimension(CherryWindow *, int, int);
void cherry_window_set_position(CherryWindow *, int, int);
void cherry_window_set_visible(CherryWindow *, int);