Esempio n. 1
0
JNIEXPORT void JNICALL
Java_org_gnome_gtk_GtkAdjustment_gtk_1adjustment_1clamp_1page
(
    JNIEnv* env,
    jclass cls,
    jlong _self,
    jdouble _lower,
    jdouble _upper
)
{
    GtkAdjustment* self;
    gdouble lower;
    gdouble upper;

    // convert parameter self
    self = (GtkAdjustment*) _self;

    // convert parameter lower
    lower = (gdouble) _lower;

    // convert parameter upper
    upper = (gdouble) _upper;

    // call function
    gtk_adjustment_clamp_page(self, lower, upper);

    // cleanup parameter self

    // cleanup parameter lower

    // cleanup parameter upper
}
Esempio n. 2
0
bool SidebarPreviewBase::scrollToPreview(SidebarPreviewBase* sidebar)
{
	XOJ_CHECK_TYPE_OBJ(sidebar, SidebarPreviewBase);

	if (!sidebar->enabled)
	{
		return false;
	}

	MainWindow* win = sidebar->control->getWindow();
	if (win == NULL)
	{
		return false;
	}

	GtkWidget* w = win->get("sidebar");
	if (!gtk_widget_get_visible(w))
	{
		return false;
	}

	if (sidebar->selectedEntry != size_t_npos && sidebar->selectedEntry < sidebar->previews.size())
	{
		SidebarPreviewBaseEntry* p = sidebar->previews[sidebar->selectedEntry];

		// scroll to preview
		GtkAdjustment* hadj = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(sidebar->scrollPreview));
		GtkAdjustment* vadj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sidebar->scrollPreview));
		GtkWidget* widget = p->getWidget();

		GtkAllocation allocation;
		gtk_widget_get_allocation(widget, &allocation);
		int x = allocation.x;
		int y = allocation.y;

		if (x == -1)
		{
			g_idle_add((GSourceFunc) scrollToPreview, sidebar);
			return false;
		}

		gtk_adjustment_clamp_page(vadj, y, y + allocation.height);
		gtk_adjustment_clamp_page(hadj, x, x + allocation.width);
	}
	return false;
}
Esempio n. 3
0
int
clip_GTK_ADJUSTMENTCLAMPPAGE(ClipMachine * cm)
{
	C_widget *cadj = _fetch_cw_arg(cm);
	gfloat   lower = _clip_parnd(cm,2);
	gfloat   upper = _clip_parnd(cm,3);
	CHECKCWID(cadj,GTK_IS_ADJUSTMENT);
	CHECKARG(2,NUMERIC_t); CHECKARG(3,NUMERIC_t);
	gtk_adjustment_clamp_page(GTK_ADJUSTMENT(cadj->widget),lower,upper);
	return 0;
err:
	return 1;
}
/* Make sure selected options stay visible when navigating with the keyboard */
static gboolean
option_focused_cb (GtkWidget * widget, GdkEventFocus * event,
		   gpointer data)
{
	GtkScrolledWindow *win = GTK_SCROLLED_WINDOW (data);
	GtkAllocation alloc;
	GtkAdjustment *adj;

	gtk_widget_get_allocation (widget, &alloc);
	adj = gtk_scrolled_window_get_vadjustment (win);
	gtk_adjustment_clamp_page (adj, alloc.y, alloc.y + alloc.height);

	return FALSE;
}
Esempio n. 5
0
static gint
luaH_document_highlight_match(lua_State *L)
{
    document_data_t *d = luaH_checkdocument_data(L, 1);
    luaH_checktable(L, 2);

    // TODO: handle this without __data and remove __data again
    lua_pushstring(L, "page");
    lua_gettable(L, -2);
    lua_pushstring(L, "__data");
    lua_rawget(L, -2);
    page_info_t *p = lua_touserdata(L, -1);
    lua_pop(L, 2);

    lua_pushstring(L, "match");
    lua_gettable(L, -2);
    GList *match = lua_touserdata(L, -1);
    lua_pop(L, 1);

    if (!match || !p)
        luaL_typerror(L, 2, "search match");

    d->current_match = match;

    /* scroll to match */
    PopplerRectangle *r = (PopplerRectangle*) match->data;
    cairo_rectangle_t *pc = page_coordinates_from_pdf_coordinates(r, p);
    cairo_rectangle_t *dc = document_coordinates_from_page_coordinates(pc, p);
    gint clamp_margin = 10;
    gtk_adjustment_clamp_page(d->hadjust, dc->x - clamp_margin, dc->x + dc->width + clamp_margin);
    gtk_adjustment_clamp_page(d->vadjust, dc->y - clamp_margin, dc->y + dc->height + clamp_margin);
    g_free(dc);
    g_free(pc);

    document_render(d);
    return 0;
}
Esempio n. 6
0
static VALUE
rg_clamp_page(VALUE self, VALUE lower, VALUE upper)
{
    gtk_adjustment_clamp_page(_SELF(self), NUM2DBL(lower), NUM2DBL(upper));
    return self;
}
Esempio n. 7
0
void Scrollbar::ensureAreaIsVisible(int lower, int upper) {
	XOJ_CHECK_TYPE(Scrollbar);

	gtk_adjustment_clamp_page(this->adj, lower, upper);
}