瀏覽代碼

Replace -w with well-known geometry option

master
Bert 13 年之前
父節點
當前提交
229830ad18
共有 5 個檔案被更改,包括 32 行新增33 行删除
  1. +2
    -2
      image.c
  2. +6
    -22
      options.c
  3. +1
    -2
      options.h
  4. +20
    -4
      window.c
  5. +3
    -3
      window.h

+ 2
- 2
image.c 查看文件

@@ -254,11 +254,11 @@ int img_pan(img_t *img, win_t *win, pandir_t dir) {
case PAN_LEFT:
return img_move(img, win, win->w / 5, 0);
case PAN_RIGHT:
return img_move(img, win, -win->w / 5, 0);
return img_move(img, win, win->w / 5 * -1, 0);
case PAN_UP:
return img_move(img, win, 0, win->h / 5);
case PAN_DOWN:
return img_move(img, win, 0, -win->h / 5);
return img_move(img, win, 0, win->h / 5 * -1);
}

return 0;


+ 6
- 22
options.c 查看文件

@@ -29,7 +29,7 @@ options_t _options;
const options_t *options = (const options_t*) &_options;

void print_usage() {
printf("usage: sxiv [-dfhpsvWZ] [-w WIDTH[xHEIGHT]] [-z ZOOM] FILES...\n");
printf("usage: sxiv [-dfhpsvWZ] [-g GEOMETRY] [-z ZOOM] FILES...\n");
}

void print_version() {
@@ -38,7 +38,6 @@ void print_version() {
}

void parse_options(int argc, char **argv) {
unsigned short w, h;
float z;
int opt;

@@ -46,13 +45,12 @@ void parse_options(int argc, char **argv) {
_options.zoom = 1.0;
_options.aa = 1;

_options.winw = w = 0;
_options.winh = h = 0;
_options.fullscreen = 0;
_options.geometry = NULL;

_options.warn = 0;

while ((opt = getopt(argc, argv, "dfhpsvWw:Zz:")) != -1) {
while ((opt = getopt(argc, argv, "dfg:hpsvWZz:")) != -1) {
switch (opt) {
case '?':
print_usage();
@@ -63,6 +61,9 @@ void parse_options(int argc, char **argv) {
case 'f':
_options.fullscreen = 1;
break;
case 'g':
_options.geometry = optarg;
break;
case 'h':
print_usage();
exit(0);
@@ -78,16 +79,6 @@ void parse_options(int argc, char **argv) {
case 'W':
_options.warn = 1;
break;
case 'w':
if (!sscanf(optarg, "%hux%hu", &w, &h)) {
fprintf(stderr, "sxiv: invalid argument for option -w: %s\n",
optarg);
exit(1);
} else {
_options.winw = (int) w;
_options.winh = (int) h;
}
break;
case 'Z':
_options.scalemode = SCALE_ZOOM;
_options.zoom = 1.0;
@@ -105,13 +96,6 @@ void parse_options(int argc, char **argv) {
}
}

if (!_options.winw) {
_options.winw = WIN_WIDTH;
_options.winh = WIN_HEIGHT;
} else if (!_options.winh) {
_options.winh = _options.winw;
}

_options.filenames = (const char**) argv + optind;
_options.filecnt = argc - optind;
}

+ 1
- 2
options.h 查看文件

@@ -29,9 +29,8 @@ typedef struct options_s {
float zoom;
unsigned char aa;

int winw;
int winh;
unsigned char fullscreen;
char *geometry;

unsigned char warn;
} options_t;


+ 20
- 4
window.c 查看文件

@@ -35,6 +35,7 @@ void win_open(win_t *win) {
win_env_t *e;
XClassHint *classhint;
XColor bgcol;
int gmask;

if (!win)
return;
@@ -58,10 +59,25 @@ void win_open(win_t *win) {
win->pm = 0;

win->fullscreen = 0;
win->w = MIN(options->winw, e->scrw);
win->h = MIN(options->winh, e->scrh);
win->x = (e->scrw - win->w) / 2;
win->y = (e->scrh - win->h) / 2;
/* determine window offsets, width & height */
if (!options->geometry)
gmask = 0;
else
gmask = XParseGeometry(options->geometry, &win->x, &win->y,
&win->w, &win->h);
if (!(gmask & WidthValue))
win->w = WIN_WIDTH;
if (win->w > e->scrw)
win->w = e->scrw;
if (!(gmask & HeightValue))
win->h = WIN_HEIGHT;
if (win->h > e->scrh)
win->h = e->scrh;
if (!(gmask & XValue))
win->x = (e->scrw - win->w) / 2;
if (!(gmask & YValue))
win->y = (e->scrh - win->h) / 2;

win->xwin = XCreateWindow(e->dpy, RootWindow(e->dpy, e->scr),
win->x, win->y, win->w, win->h, 0,


+ 3
- 3
window.h 查看文件

@@ -44,12 +44,12 @@ typedef struct win_s {
unsigned long bgcol;
Pixmap pm;

int w;
int h;
int x;
int y;
unsigned int w;
unsigned int h;

int bw;
unsigned int bw;
unsigned char fullscreen;
} win_t;



Loading…
取消
儲存