コード例 #1
0
ファイル: help_page.js プロジェクト: HouQiming/qpad
	this.AddEventHandler('RETURN RETURN2',function(key,event){
		var obj=this.owner
		if(obj.text){
			obj.InvalidateContent();
			UI.Refresh()
		}else if(obj.help_list){
			obj.help_list.OnKeyDown(event)
		}
	})
コード例 #2
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	InsertNote:function(){
		var new_sticker={
			"type":"note",
			"w":300,"h":32,
			"scale":0.8,
		};
		this.PlaceSticker(new_sticker);
		UI.Refresh();
	},
コード例 #3
0
ファイル: help_page.js プロジェクト: HouQiming/qpad
	this.AddEventHandler('ESC',function(){
		var obj=this.owner
		var tab_frontmost=UI.GetFrontMostEditorTab();
		if(tab_frontmost){
			UI.top.app.document_area.SetTab(tab_frontmost.__global_tab_id)
		}
		UI.top.app.document_area.CloseTab(obj.owner_tab.__global_tab_id)
		UI.Refresh()
	})
コード例 #4
0
ファイル: help_page.js プロジェクト: HouQiming/qpad
	OpenFile:function(fn){
		this.m_file_name=fn;
		if(fn.length&&fn[0]=='*'){
			this.text=IO.UIReadAll(fn.substr(1));
		}else{
			this.text=IO.ReadAll(fn);
		}
		UI.Refresh();
	},
コード例 #5
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	OnMouseDown:function(event){
		UI.SetFocus(this);
		this.m_drag_ctx={mode:"translation",x:event.x,y:event.y, tr:JSON.parse(JSON.stringify(this.m_tr))};
		if(event.button==UI.SDL_BUTTON_LEFT){
			this.m_drag_ctx.mode="selection";
			UI.SetFocus(this);
		}
		UI.CaptureMouse(this);
		UI.Refresh();
	},
コード例 #6
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	MultiplyScale:function(scale){
		var stickers=this.m_stickers;
		for(var i=0;i<stickers.length;i++){
			if(stickers[i].m_is_selected){
				stickers[i].scale*=scale;
			}
		}
		this.need_save=1;
		UI.Refresh();
	},
コード例 #7
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
					action:function(){
						for(var i=0;i<body.m_stickers.length;i++){
							var sticker_i=body.m_stickers[i];
							if(sticker_i.m_is_selected&&sticker_i.doc){
								UI.SetFocus(sticker_i.doc);
								UI.Refresh();
								break;
							}
						}
					},
コード例 #8
0
ファイル: help_page.js プロジェクト: HouQiming/qpad
	OnMouseWheel:function(event){
		if(!this.help_ctx){return;}
		var hc=UI.GetCharacterHeight(this.styles[0].font);
		var scroll_y0=this.scroll_y;
		var h_scrolling_area=this.h_main_area;
		this.scroll_y+=-hc*this.mouse_wheel_speed*event.y;
		this.ValidateScroll();
		if(this.scroll_y!=scroll_y0){
			UI.Refresh();
		}
	},
コード例 #9
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	ResizeSelectionKeyboard:function(dx,dy){
		for(var i=0;i<this.m_stickers.length;i++){
			var sticker_i=this.m_stickers[i];
			if(sticker_i.m_is_selected){
				sticker_i.w+=dx;
				sticker_i.h+=dy;
			}
		}
		this.need_save=1;
		UI.Refresh();
	},
コード例 #10
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	MoveCursorKeyboard:function(dx,dy){
		var sel_x=-dx*10000;
		var sel_y=-dy*10000;
		var stickers=this.m_stickers;
		for(var i=0;i<stickers.length;i++){
			if(stickers[i].m_is_selected){
				sel_x=stickers[i].x;
				sel_y=stickers[i].y;
				break;
			}
		}
		var best_cosine=0;
		for(var i=0;i<stickers.length;i++){
			var dx_i=stickers[i].x-sel_x;
			var dy_i=stickers[i].y-sel_y;
			var ilg=1.0/Math.sqrt(dx_i*dx_i+dy_i*dy_i);
			if(ilg>0){
				dx_i*=ilg;
				dy_i*=ilg;
			}else{
				continue;
			}
			var cosine=dx_i*dx+dy_i*dy;
			if(best_cosine<cosine){
				best_cosine=cosine;
			}
		}
		var best_lg=1e10;
		var best_i=-1;
		for(var i=0;i<stickers.length;i++){
			var dx_i=stickers[i].x-sel_x;
			var dy_i=stickers[i].y-sel_y;
			var lg=Math.sqrt(dx_i*dx_i+dy_i*dy_i);
			var ilg=1.0/lg;
			if(ilg>0){
				dx_i*=ilg;
				dy_i*=ilg;
			}else{
				continue;
			}
			var cosine=dx_i*dx+dy_i*dy;
			if(cosine>best_cosine*0.9&&best_lg>lg){
				best_lg=lg;
				best_i=i;
			}
		}
		if(best_i>=0){
			this.ClearSelection();
			stickers[best_i].m_is_selected=1;
		}
		UI.Refresh();
	},
コード例 #11
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	OnMouseMove:function(event){
		if(!this.is_dragging){return;}
		var wall=this.wall_owner;
		for(var i=0;i<wall.m_stickers.length;i++){
			var sticker_i=wall.m_stickers[i];
			if(sticker_i.m_is_selected){
				sticker_i.x=sticker_i.drag_x+this.dx+event.x;
				sticker_i.y=sticker_i.drag_y+this.dy+event.y;
			}
		}
		wall.need_save=1;
		UI.Refresh();
	},
コード例 #12
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	OnMouseUp:function(event){
		this.OnMouseMove(event);
		var wall=this.wall_owner;
		for(var i=0;i<wall.m_stickers.length;i++){
			var sticker_i=wall.m_stickers[i];
			if(sticker_i.m_is_selected){
				sticker_i.drag_x=undefined;
				sticker_i.drag_y=undefined;
			}
		}
		this.is_dragging=0;
		UI.ReleaseMouse(this);
		UI.Refresh();
	},
コード例 #13
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	OnMouseWheel:function(event){
		var x_real=UI.m_absolute_mouse_position.x/UI.pixels_per_unit-this.x;
		var y_real=UI.m_absolute_mouse_position.y/UI.pixels_per_unit-this.y;
		var mx_world=(x_real-this.m_tr.trans[0])/this.m_tr.scale;
		var my_world=(y_real-this.m_tr.trans[1])/this.m_tr.scale;
		var log_scale=Math.log(this.m_tr.scale);
		log_scale+=event.y*0.1;
		this.m_tr.scale=(Math.exp(log_scale)||1);
		this.m_tr.trans[0]=x_real-mx_world*this.m_tr.scale;
		this.m_tr.trans[1]=y_real-my_world*this.m_tr.scale;
		if(this.m_drag_ctx){
			this.m_drag_ctx={x:x_real,y:y_real, tr:JSON.parse(JSON.stringify(this.m_tr))};
		}
		UI.Refresh();
	},
コード例 #14
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	GotoOriginal:function(){
		var stickers=this.m_stickers;
		for(var i=0;i<stickers.length;i++){
			if(stickers[i].m_is_selected&&stickers[i].type=="code"){
				var sticker_i=stickers[i];
				UI.OpenEditorWindow(sticker_i.doc.m_file_name,function(){
					UI.SetSelectionEx(this,
						sticker_i.doc.sel0.ccnt+sticker_i.doc.ed.QueryMySyncGroupOffset(),
						sticker_i.doc.sel1.ccnt+sticker_i.doc.ed.QueryMySyncGroupOffset(),
						'sticker_goto');
				});
				break;
			}
		}
		UI.Refresh();
	},
コード例 #15
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
						OnClick:function(sticker_i){
							var result_cell=UI.OpenNotebookCellFromEditor(this,"[button: "+sticker_i.caption+"]","Plain text",0,"output");
							if(result_cell){
								var bk_active_tab=UI.top.app.document_area.active_tab;
								var obj_notebook=result_cell.obj_notebook;
								if(obj_notebook.RunCell(result_cell.cell_id)=="focus"){
									//if we got a cancel notification...
									bk_active_tab=undefined;
								}
								if(bk_active_tab!=undefined){
									UI.top.app.document_area.BringUpTab(bk_active_tab.__global_tab_id)
									UI.SetFocus(this);
								}
							}
							UI.Refresh();
						}.bind(this,sticker_i),
コード例 #16
0
ファイル: test_gui.js プロジェクト: KevinStigma/jacy
var demo_text_animation=function(id,attrs){
	attrs=UI.Keep(id,attrs);
	if(!attrs.anim_x){attrs.anim_x=0;attrs.danim_x=1;}
	attrs.text=attrs.text||"Grumpy wizards make toxic brew for the evil Queen and Jack.";//"The quick brown fox jumps over a lazy dog.";
	//attrs.font=attrs.font||"RobotoCondensed-Regular";//"segoeui";
	attrs.font=UI.font_name
	UI.Begin(attrs);
		var wnd=UI.Begin(W.Window("app",{title:"GUI hello world",w:1024,h:768,bgcolor:0xff000000,designated_screen_size:1440,flags:UI.SDL_WINDOW_MAXIMIZED|UI.SDL_WINDOW_RESIZABLE,is_main_window:1}))
			W.Hotkey("",{key:"ALT+F4",action:function(){UI.DestroyWindow(wnd)}});
			W.RoundRect("",{x:attrs.anim_x+10,y:10, w:200,h:100,color:0xff0000ff});
			W.RoundRect("",{x:attrs.anim_x+10,y:120,w:200,h:100,color:0xff00ff00});
			W.RoundRect("",{x:attrs.anim_x+10,y:230,w:200,h:100,color:0xffff0000});
			W.RoundRect("",{x:wnd.w/2,y:0,w:wnd.w/2,h:wnd.h,color:0xffffffff});
			W.RoundRect("",{x:wnd.w/2+attrs.anim_x+10,y:10, w:200,h:100,border_width:0,round:16,color:0xffe0e0ff,border_color:0xff00007f});
			W.RoundRect("",{x:wnd.w/2+attrs.anim_x+10,y:120,w:200,h:100,border_width:1,round:16,color:0xffe0ffe0,border_color:0xff007f00});
			W.RoundRect("",{x:wnd.w/2+attrs.anim_x+10,y:230,w:200,h:100,border_width:4.5,round:16,color:[{x:0,y:0,color:0xff7f0000},{x:1,y:1,color:0xffffe0e0}],border_color:0xff7f0000});
			//W.Bitmap("",{x:wnd.w/2+attrs.anim_x+10,y:10,file:"test/res/edico.png"})
			W.Button("ok",{
				x:16,y:wnd.h-110,
				font:UI.Font("ArialUni",48),text:"OK",
				OnClick:function(){UI.DestroyWindow(wnd)}});
			W.Button("cancel",{
				x:wnd.w-316,y:wnd.h-110,
				icon:"test/res/check_64.png",
				font:UI.Font("dsanscn",48,200),text:"漢字",
				OnClick:function(){attrs.text="世の中に、必要な悪があるなんて、子供たちに教えたくありません"}})
			var y0=340;
			var s_text=attrs.text;
			//1.07
			for(var i=12;i<68;i*=1.1){
				//Text("",{x:attrs.anim_x+10,y:y0,font:UI.Font("cambria",i),text:"Hello world!",color:0xff000000})
				W.Text("",{x:attrs.anim_x+10,y:y0,font:UI.Font(attrs.font,i),text:s_text,color:0xffffffff})
				W.Text("",{x:wnd.w/2+attrs.anim_x+10,y:y0,font:UI.Font(attrs.font,i),text:s_text,color:0xff000080})
				y0+=i;
			}
		UI.End();
		attrs.anim_x+=attrs.danim_x;
		if(attrs.anim_x>180){attrs.danim_x=-1}
		if(attrs.anim_x<10){attrs.danim_x=1}
		UI.Refresh()
	UI.End();
};
コード例 #17
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	DeleteSelection:function(){
		var stickers=this.m_stickers;
		var deleted_stickers=[];
		var n2=0;
		for(var i=0;i<stickers.length;i++){
			var sticker_i=stickers[i];
			if(!sticker_i.m_is_selected){
				stickers[n2]=sticker_i;
				n2++;
			}else{
				this.DestroyStickerEditor(sticker_i);
				deleted_stickers.push(sticker_i);
			}
		}
		stickers.length=n2;
		if(deleted_stickers){
			UI.SDL_SetClipboardText(UI.g_clipboard_flag_stickerwall+JSON.stringify(deleted_stickers));
		}
		UI.Refresh();
		this.need_save=1;
	},
コード例 #18
0
ファイル: help_page.js プロジェクト: HouQiming/qpad
	this.AddEventHandler('change',function(){
		//close the current file
		var obj=this.owner
		obj.InvalidateContent()
		UI.Refresh()
	})
コード例 #19
0
ファイル: test_gui.js プロジェクト: KevinStigma/jacy
				OnClick:function(){
					attrs.color_mask=color_mask^0xffffff;
					textbox.ed=null;//todo
					UI.Refresh()
				}});
コード例 #20
0
ファイル: stickerwall.js プロジェクト: HouQiming/qpad
	this.AddEventHandler('ESC',function(){
		UI.SetFocus(this.m_sticker_wall_owner);
		UI.Refresh();
	});
コード例 #21
0
ファイル: help_page.js プロジェクト: HouQiming/qpad
				OnChange:function(value){
					obj.scrolling_animation=undefined;
					obj.scroll_y=value*(this.total_size-this.page_size)
					UI.Refresh()
				},
コード例 #22
0
ファイル: test_gui.js プロジェクト: KevinStigma/jacy
				OnClick:function(){
					attrs.sharpen=!attrs.sharpen;
					UI.SetFontSharpening(attrs.sharpen?1.5:0.0);
					UI.Refresh()
				}});