Ejemplo n.º 1
0
	void open_zoomer()
	{
		if (!bm_touchzoom) bm_touchzoom = GetResource("touchzoom", (ibitmap*) &touchzoom);

		th = header_font->height + 4;
		dw = bm_touchzoom->width + 80;
		dh = th + bm_touchzoom->height + menu_n_font->height + 40;
		dx = (ScreenWidth() - dw) / 2;
		dy = (ScreenHeight() - dh) / 2;

		isaves = BitmapFromScreen(dx, dy, dw + 4, dh + 4);
		DimArea(dx + 4, dy + 4, dw, dh, BLACK);

		new_scale = scale;
		new_rscale = rscale;
		new_reflow = reflow_mode;

		prevhandler = iv_seteventhandler(newzoomer_handler);
		if (ivstate.needupdate)
		{
			draw_new_zoomer(0);
			SoftUpdate();
		}
		else
		{
			draw_new_zoomer(1);
		}

	}
Ejemplo n.º 2
0
void new_synopsis_note()
{
	PrepareActiveContent(0);

	SynWordList* synWordList = new SynWordList[2];
	memset(synWordList, 0, sizeof(SynWordList) * 2);

	synWordList[0].word = strdup("");
	synWordList[0].x1 = 0;
	synWordList[0].y1 = 0;
	synWordList[0].x2 = 0;
	synWordList[0].y2 = 0;
	synWordList[0].pnum = cpage;
	synWordList[0].wnum = 1;

	synWordList[1].word = strdup("");
	synWordList[1].x1 = ScreenWidth();
	synWordList[1].y1 = ScreenHeight() - PanelHeight();
	synWordList[1].x2 = ScreenWidth();
	synWordList[1].y2 = ScreenHeight() - PanelHeight();
	synWordList[1].pnum = cpage;
	synWordList[1].wnum = 2;

	List.Clear();
	List.Add(synWordList, 2, 1);

	delete[] synWordList;

	ibitmap *bm1=NULL, *bm2=NULL;
	bm1 = BitmapFromScreen(0, 0, ScreenWidth(), ScreenHeight()-PanelHeight());
//	bm2 = BitmapFromScreen(0, 0, ScreenWidth(), ScreenHeight()-PanelHeight());
	Note = new SynopsisNote();
	Note->Create((TSynopsisTOC*)&m_TOC, &List, bm1, bm2, false);
//	SendEvent(GetEventHandler(), EVT_SHOW, 0, 0);
}
Ejemplo n.º 3
0
// constructor
Zoomer::Zoomer(const ZoomerParameters& params, CloseHandler closeHandler) : m_PrevHandler(0)
{
    // save area behind zoomer
    int xframe, yframe, wframe, hframe;
    GetWindowFrameRect(xframe, yframe, wframe, hframe);
    m_SavedArea = BitmapFromScreen(xframe, yframe, wframe, hframe);

    // memorize close handler
    m_CloseHandler = closeHandler;

    // create strategies
    s_Strategies[ZOOM_STRATEGY_PAGES] = new PagesZoomStrategy(params);
    s_Strategies[ZOOM_STRATEGY_FIT_WIDTH] = new FitWidthStrategy(params);
    s_Strategies[ZOOM_STRATEGY_MANUAL_ZOOM] = new ManualZoomStrategy(params);
    s_Strategies[ZOOM_STRATEGY_MANUAL_COLUMNS] = new ColumnsZoomStrategy(params);

    // select appropriate position
    if (params.optimal_zoom)
    {
        m_Position = ZOOM_STRATEGY_FIT_WIDTH;
    }
    else if (params.zoom <= 50)
    {
        m_Position = ZOOM_STRATEGY_PAGES;
    }
    else if (params.zoom >= 200)
    {
        m_Position = ZOOM_STRATEGY_MANUAL_COLUMNS;
    }
    else
    {
        m_Position = ZOOM_STRATEGY_MANUAL_ZOOM;
    }
}
Ejemplo n.º 4
0
void SelectionTimer()
{
	repaint_all(-1);
	ToolBar.OutputPage(BitmapFromScreen(0, 0, ScreenWidth(), ScreenHeight()-PanelHeight()),
				1, updMarkerx, updMarkery, updMarkerw, updMarkerh);
	if (++usersleep < 50)
		SetHardTimer("SelectionTimer", SelectionTimer, 25);
	else
		MarkerHandler(EVT_POINTERUP, lastx, lasty);
}
Ejemplo n.º 5
0
void OpenMarkerMenu(PBSynopsisItem *item)
{
	// Prepare page and open marker menu
	if (item != NULL)
	{
		int spi, sei, sci, epi, eei, eci;
		PBSynopsisMarker *marker = (PBSynopsisMarker *)item;
		selectingMarker = false;
		ClearTimer(SelectionTimer);
		unpack_position(marker->GetLongPosition(), &spi, &sei, &sci);
		unpack_position(marker->GetEndLongPosition(), &epi, &eei, &eci);
		bookview->selectionModel().SetSelection(spi, sei, sci, epi, eei, eci);
		repaint_all(-1);
		ToolBar.OutputPage(BitmapFromScreen(0, 0, ScreenWidth(), ScreenHeight()-PanelHeight()));
		ToolBar.OpenMarkerMenu(marker);
		bookview->selectionModel().clear();
	}
}
Ejemplo n.º 6
0
int MarkerHandler(int type, int par1, int par2)
{
	if (type == EVT_POINTERDOWN)
	{
		selectingMarker = true;
		restore_current_position();
		mainApplication->refreshWindow();
		bookview->selectionModel().clear();
		bookview->selectionModel().activate(par1 - imgposx, par2 - imgposy);
		SetHardTimer("SelectionTimer", SelectionTimer, 250);
		selMarkery1 = selMarkery2 = lasty = par2;
		lastx = par1;
		usersleep = 0;
	}
	else if (type == EVT_POINTERMOVE)
	{
		if (++trailMarker > 8)
		{
			if (selectingMarker)
			{
				lastx = par1;
				lasty = par2;
				bookview->selectionModel().extendTo(par1 - imgposx, par2 - imgposy);
				selMarkery2 = par2;
				usersleep = 0;
			}
			trailMarker = 0;
		}
	}
	else if (type == EVT_POINTERUP)
	{
		if (!selectingMarker)
			return 0;
		selectingMarker = false;
		ClearTimer(SelectionTimer);
		restore_current_position();
		mainApplication->refreshWindow();
		bookview->selectionModel().extendTo(par1 - imgposx, par2 - imgposy);

		long long spos, epos;
		bool clickOnly, emptyText;
		GetSelectionInfo(&spos, &epos, &emptyText, &clickOnly);
		if ((clickOnly && SynTOC.GetMarkerByPos(spos) != NULL) || emptyText)
		{
			OpenMarkerMenu(SynTOC.GetMarkerByPos(spos));
		}
		else
		{
			MergeMarkers(spos, epos);
			bookview->selectionModel().clear();
			repaint_all(-2);
			ToolBar.OutputPage(BitmapFromScreen(0, 0, ScreenWidth(), ScreenHeight()-PanelHeight()),
						2, updMarkerx, updMarkery, updMarkerw, updMarkerh);
		}

	}
	else if (type == EVT_POINTERHOLD || type == EVT_POINTERLONG)
	{
		restore_current_position();
		mainApplication->refreshWindow();
		bookview->selectionModel().extendTo(par1 - imgposx, par2 - imgposy);

		long long spos, epos;
		bool clickOnly, emptyText;
		GetSelectionInfo(&spos, &epos, &emptyText, &clickOnly);
		if (clickOnly || emptyText)
		{
			OpenMarkerMenu(SynTOC.GetMarkerByPos(spos));
		}
	}
	return 0;
}