/*
* ion/ioncore/kbresize.c
*
- * Copyright (c) Tuomo Valkonen 1999-2006.
+ * Copyright (c) Tuomo Valkonen 1999-2008.
*
- * Ion is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
+ * See the included file LICENSE for details.
*/
#include <math.h>
static double accel=1, accelinc=30, accelmax=100*100;
static long actmax=200, uptmin=50;
static int resize_delay=CF_RESIZE_DELAY;
+/* Here to not have to write other set callback for resize code... */
+int ioncore_edge_resistance=CF_EDGE_RESISTANCE;
static void accel_reset()
void ioncore_set_moveres_accel(ExtlTab tab)
{
- int t_max, t_min, rd;
+ int t_max, t_min, rd, er;
double step, maxacc;
if(extl_table_gets_i(tab, "kbresize_t_max", &t_max))
accelmax=(maxacc>0 ? maxacc*maxacc : 1);
if(extl_table_gets_i(tab, "kbresize_delay", &rd))
resize_delay=maxof(0, rd);
+ if(extl_table_gets_i(tab, "edge_resistance", &er))
+ ioncore_edge_resistance=maxof(0, er);
}
extl_table_sets_d(tab, "kbresize_step", accelinc);
extl_table_sets_d(tab, "kbresize_maxacc", accelmax);
extl_table_sets_d(tab, "kbresize_delay", resize_delay);
+ extl_table_sets_i(tab, "edge_resistance", ioncore_edge_resistance);
}
struct timeval tv;
long adiff, udiff;
- gettimeofday(&tv, NULL);
+ if(mainloop_gettime(&tv)!=0)
+ return;
adiff=tvdiffmsec(&tv, &last_action_tv);
udiff=tvdiffmsec(&tv, &last_update_tv);
static ExtlExportedFn *moveres_safe_fns[]={
(ExtlExportedFn*)&moveresmode_resize,
(ExtlExportedFn*)&moveresmode_move,
+ (ExtlExportedFn*)&moveresmode_rqgeom_extl,
+ (ExtlExportedFn*)&moveresmode_geom,
(ExtlExportedFn*)&moveresmode_finish,
(ExtlExportedFn*)&moveresmode_cancel,
NULL
}
+/*EXTL_DOC
+ * Request exact geometry in move/resize mode. For details on parameters,
+ * see \fnref{WRegion.rqgeom}.
+ */
+EXTL_EXPORT_AS(WMoveresMode, rqgeom)
+ExtlTab moveresmode_rqgeom_extl(WMoveresMode *mode, ExtlTab g)
+{
+ WRQGeomParams rq=RQGEOMPARAMS_INIT;
+ WRectangle res;
+
+ rqgeomparams_from_table(&rq, &mode->geom, g);
+
+ moveresmode_rqgeom(mode, &rq, &res);
+
+ return extl_table_from_rectangle(&res);
+}
+
+/*EXTL_DOC
+ * Returns current geometry.
+ */
+EXTL_EXPORT_MEMBER
+ExtlTab moveresmode_geom(WMoveresMode *mode)
+{
+ return extl_table_from_rectangle(&mode->geom);
+}
+
+
/*EXTL_DOC
* Return from move/resize mode and apply changes unless opaque
* move/resize is enabled.