コード例 #1
0
ファイル: canvas.c プロジェクト: snapbug/atire
/*
	ANT_CANVAS::MENU()
	------------------
*/
void ANT_canvas::menu(WORD clicked)
{
SCROLLINFO scrollbar;
long long lines;

switch (clicked)
	{
	/*
		FILE MENU
	*/
	case ID_FILE_EXIT:
		PostQuitMessage(0);
		break;
	case ID_FILE_OPEN_FILE:
		lines = load_file();
		set_scroll_position(1, file->get_current_line_number(), file->get_page_size(), file->get_lines_in_file());
		break;
	}
}
コード例 #2
0
ファイル: tm_window.cpp プロジェクト: mgubi/texmacs
void
tm_window_rep::set_scroll_pos (SI x, SI y) {
    set_scroll_position (wid, x, y);
}
コード例 #3
0
ファイル: canvas.c プロジェクト: snapbug/atire
/*
	ANT_CANVAS::WINDOWS_CALLBACK()
	------------------------------
*/
LRESULT ANT_canvas::windows_callback(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
	{
	case WM_CREATE:
		file->set_window_size(((CREATESTRUCT *)lParam)->cx, ((CREATESTRUCT *)lParam)->cy);
		file->read_file((char *)(L"c:\\ant\\edit\\main.c"));
		return 0;

	case WM_CLOSE:
		PostQuitMessage(0);
		return 0;

	case WM_SYSKEYDOWN:
	case WM_KEYDOWN:
		return 0;

	case WM_SYSKEYUP:
	case WM_KEYUP:
		return 0;

	case WM_VSCROLL:
		{
		long long new_line, new_position;

		switch LOWORD(wParam)
			{
			case SB_LINEUP:
				new_line = file->line_up();
				break;
			case SB_LINEDOWN:
				new_line = file->line_down();
				break;
			case SB_PAGEUP:
				new_line = file->page_up();
				break;
			case SB_PAGEDOWN:
				new_line = file->page_down();
				break;
			case SB_BOTTOM:
				new_line = file->file_end();
				break;
			case SB_TOP:
				new_line = file->file_start();
				break;
			case SB_ENDSCROLL:			// user has finished scrolling, do nothing
				break;
			case SB_THUMBPOSITION:		// user is tracking the scroll bar
			case SB_THUMBTRACK:
				new_position = HIWORD(wParam);
				new_line = file->goto_line(new_position);
				break;
			}
		set_scroll_position(1, file->get_current_line_number(), file->get_page_size(), file->get_lines_in_file());
		InvalidateRect(window, NULL, true);
		return 0;
		}
	case WM_PAINT:
		render();
		return 0;

	case WM_TIMER:
		return 0;

	case WM_MOUSEWHEEL:
		{
		long long lines = GET_WHEEL_DELTA_WPARAM(wParam) / WHEEL_DELTA;
		long long current;

		if (lines > 0)
			for (current = 0; current < lines; current++)
				{
				file->line_up();
				file->line_up();
				file->line_up();
				}
		else
			for (current = 0; current > lines; current--)
				{
				file->line_down();
				file->line_down();
				file->line_down();
				}

		set_scroll_position(1, file->get_current_line_number(), file->get_page_size(), file->get_lines_in_file());
		InvalidateRect(window, NULL, true);
		return 0;
		}
	case WM_SIZE:
		file->set_window_size(LOWORD(lParam), HIWORD(lParam));
		return 0;

	case WM_COMMAND:
		if (LOWORD(wParam) == IDCANCEL)			// ESC key
			{
			}
		else
			menu(LOWORD(wParam));
		return 0;
	}
return (DefWindowProc(hwnd,message,wParam,lParam));
}