⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdkevents.zc

📁 实现树形结构
💻 ZC
字号:

import "glib/glib"
import "glib/glib-object"
import "gdktypes"
import "gdkdrawable"
import "gdkwindow"
import "gdkdnd"

struct GdkDevice; dummy: int; end

struct pgdouble; l: dword; h: dword; end
typedef gdouble = local pgdouble

public [name="c"]

typedef GdkEventFunc = {GdkEvent, gpointer} void

enum GdkEventType
	GDK_NOTHING		= -1
	GDK_DELETE		= 0
	GDK_DESTROY		= 1
	GDK_EXPOSE		= 2
	GDK_MOTION_NOTIFY	= 3
	GDK_BUTTON_PRESS	= 4
	GDK_2BUTTON_PRESS	= 5
	GDK_3BUTTON_PRESS	= 6
	GDK_BUTTON_RELEASE	= 7
	GDK_KEY_PRESS		= 8
	GDK_KEY_RELEASE	= 9
	GDK_ENTER_NOTIFY	= 10
	GDK_LEAVE_NOTIFY	= 11
	GDK_FOCUS_CHANGE	= 12
	GDK_CONFIGURE		= 13
	GDK_MAP		= 14
	GDK_UNMAP		= 15
	GDK_PROPERTY_NOTIFY	= 16
	GDK_SELECTION_CLEAR	= 17
	GDK_SELECTION_REQUEST = 18
	GDK_SELECTION_NOTIFY	= 19
	GDK_PROXIMITY_IN	= 20
	GDK_PROXIMITY_OUT	= 21
	GDK_DRAG_ENTER        = 22
	GDK_DRAG_LEAVE        = 23
	GDK_DRAG_MOTION       = 24
	GDK_DRAG_STATUS       = 25
	GDK_DROP_START        = 26
	GDK_DROP_FINISHED     = 27
	GDK_CLIENT_EVENT	= 28
	GDK_VISIBILITY_NOTIFY = 29
	GDK_NO_EXPOSE		= 30
	GDK_SCROLL            = 31
	GDK_WINDOW_STATE      = 32
	GDK_SETTING           = 33
end

enum GdkEventMask
	GDK_EXPOSURE_MASK		= 1 << 1
	GDK_POINTER_MOTION_MASK	= 1 << 2
	GDK_POINTER_MOTION_HINT_MASK	= 1 << 3
	GDK_BUTTON_MOTION_MASK	= 1 << 4
	GDK_BUTTON1_MOTION_MASK	= 1 << 5
	GDK_BUTTON2_MOTION_MASK	= 1 << 6
	GDK_BUTTON3_MOTION_MASK	= 1 << 7
	GDK_BUTTON_PRESS_MASK		= 1 << 8
	GDK_BUTTON_RELEASE_MASK	= 1 << 9
	GDK_KEY_PRESS_MASK		= 1 << 10
	GDK_KEY_RELEASE_MASK		= 1 << 11
	GDK_ENTER_NOTIFY_MASK		= 1 << 12
	GDK_LEAVE_NOTIFY_MASK		= 1 << 13
	GDK_FOCUS_CHANGE_MASK		= 1 << 14
	GDK_STRUCTURE_MASK		= 1 << 15
	GDK_PROPERTY_CHANGE_MASK	= 1 << 16
	GDK_VISIBILITY_NOTIFY_MASK	= 1 << 17
	GDK_PROXIMITY_IN_MASK		= 1 << 18
	GDK_PROXIMITY_OUT_MASK	= 1 << 19
	GDK_SUBSTRUCTURE_MASK		= 1 << 20
	GDK_SCROLL_MASK               = 1 << 21
	GDK_ALL_EVENTS_MASK		= 0x3FFFFE
end

enum GdkVisibilityState
	GDK_VISIBILITY_UNOBSCURED
	GDK_VISIBILITY_PARTIAL
	GDK_VISIBILITY_FULLY_OBSCURED
end

enum GdkScrollDirection
	GDK_SCROLL_UP
	GDK_SCROLL_DOWN
	GDK_SCROLL_LEFT
	GDK_SCROLL_RIGHT
end

enum GdkNotifyType
	GDK_NOTIFY_ANCESTOR		= 0
	GDK_NOTIFY_VIRTUAL		= 1
	GDK_NOTIFY_INFERIOR		= 2
	GDK_NOTIFY_NONLINEAR		= 3
	GDK_NOTIFY_NONLINEAR_VIRTUAL	= 4
	GDK_NOTIFY_UNKNOWN		= 5
end

enum GdkCrossingMode
	GDK_CROSSING_NORMAL
	GDK_CROSSING_GRAB
	GDK_CROSSING_UNGRAB
end

enum GdkPropertyState
	GDK_PROPERTY_NEW_VALUE
	GDK_PROPERTY_DELETE
end

enum GdkWindowState
	GDK_WINDOW_STATE_WITHDRAWN = 1 << 0
	GDK_WINDOW_STATE_ICONIFIED = 1 << 1
	GDK_WINDOW_STATE_MAXIMIZED = 1 << 2
	GDK_WINDOW_STATE_STICKY    = 1 << 3
end

enum GdkSettingAction
	GDK_SETTING_ACTION_NEW
	GDK_SETTING_ACTION_CHANGED
	GDK_SETTING_ACTION_DELETED
end

// The GdkEvent extensions does not inherits from GdkEvent because of
// structure alignment 

struct GdkEvent
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
end

struct GdkEventAny
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
end

struct GdkEventExpose
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	area: local GdkRectangle 
	region: GdkRegion
	count: gint
end

struct GdkEventNoExpose
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
end

struct GdkEventVisibility
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	state: GdkVisibilityState
end

struct GdkEventMotion
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	time: guint32
	x: gdouble
	y: gdouble
	axes: gdouble
	state: guint
	is_hint: gint16
	device: GdkDevice
	//x_root: gdouble
	//y_root: gdouble
end

struct GdkEventButton
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	time: guint32
	x: gdouble
	y: gdouble
	axes: [] gdouble
	state: guint
	button: guint
	device: GdkDevice
	//x_root: gdouble
	//y_root: gdouble
end

struct GdkEventScroll
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	time: guint32
	x: gdouble
	y: gdouble
	state: guint
	direction: GdkScrollDirection
	device: GdkDevice
	//x_root: gdouble
	//y_root: gdouble
end

struct GdkEventKey
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	time: guint32
	state: guint
	keyval: guint
	length: gint
	string: [] gchar
	hardware_keycode: guint16
	group: guint8
end

struct GdkEventCrossing
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	subwindow: GdkWindow
	time: guint32
	x: gdouble 
	y: gdouble
	x_root: gdouble
	y_root: gdouble
	mode: GdkCrossingMode
	detail: GdkNotifyType
	focus: gboolean
	state: guint
end

struct GdkEventFocus
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	in: gint16
end

struct GdkEventConfigure
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	x: gint
	y: gint
	width: gint
	height: gint
end

struct GdkEventProperty
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	atom: GdkAtom
	time: guint32
	state: guint
end

struct GdkEventSelection
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	selection: GdkAtom
	target: GdkAtom
	property: GdkAtom
	time: guint32
	//requestor: GdkNativeWindow
end

struct GdkEventProximity
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	time: guint32
	device: GdkDevice
end

struct GdkEventClient
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	message_type: GdkAtom
	data_format: gushort
	data: union
		b: [20] char
		s: [10] short
		l: [5] int
	end
end

struct GdkEventSetting
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	action: GdkSettingAction
	name: [] char
end

struct GdkEventWindowState
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	changed_mask: GdkWindowState
	new_window_state: GdkWindowState
end

struct GdkEventDND
	type: GdkEventType
	window: GdkWindow
	send_event: gint8
	context: GdkDragContext
	time: guint32
	x_root: gshort
	y_root: gshort
end


import func gdk_event_get_type: GType

import func gdk_events_pending: gboolean
import func gdk_event_get: GdkEvent

import func gdk_event_peek: GdkEvent
import func gdk_event_get_graphics_expose (GdkWindow): GdkEvent
import func gdk_event_put (GdkEvent)

import func gdk_event_copy (GdkEvent): GdkEvent
import func gdk_event_free (GdkEvent)

import func gdk_event_get_time (GdkEvent): guint32
import func gdk_event_get_state (GdkEvent,GdkModifierType): gboolean
import func gdk_event_get_coords (GdkEvent,[] gdouble,[] gdouble): gboolean
import func gdk_event_get_root_coords (GdkEvent,[] gdouble,[] gdouble): gboolean
//import func gdk_event_get_axis (GdkEvent,GdkAxisUse,[] gdouble): gboolean
import func gdk_event_handler_set 	(GdkEventFunc,gpointer,GDestroyNotify)

import func gdk_set_show_events (gboolean)
import func gdk_get_show_events: gboolean

import func gdk_event_button_button (GdkEventButton): guint
import func gdk_event_button_get_x (GdkEventButton): int
import func gdk_event_button_get_y (GdkEventButton): int
import func gdk_event_motion_get_x (GdkEventMotion): int
import func gdk_event_motion_get_y (GdkEventMotion): int
import func gdk_event_scroll_get_x (GdkEventScroll): int
import func gdk_event_scroll_get_y (GdkEventScroll): int

end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -