/*******************************************************************************
* Copyright (c) 2007 cnfree.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* cnfree - initial API and implementation
*******************************************************************************/
package org.sf.feeling.swt.win32.extension.example;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.sf.feeling.swt.win32.extension.Win32;
import org.sf.feeling.swt.win32.extension.example.page.BasePage;
import org.sf.feeling.swt.win32.extension.example.page.ICategoryPage;
import org.sf.feeling.swt.win32.extension.example.provider.CategoryProviderFactory;
import org.sf.feeling.swt.win32.extension.example.provider.ICategoryProvider;
import org.sf.feeling.swt.win32.extension.graphics.GraphicsUtil;
import org.sf.feeling.swt.win32.extension.hook.Hook;
import org.sf.feeling.swt.win32.extension.hook.JournalPlaybackHook;
import org.sf.feeling.swt.win32.extension.hook.JournalRecordHook;
import org.sf.feeling.swt.win32.extension.shell.ApplicationBar;
import org.sf.feeling.swt.win32.extension.shell.SystemMenuItem;
import org.sf.feeling.swt.win32.extension.shell.SystemMenuManager;
import org.sf.feeling.swt.win32.extension.shell.Windows;
import org.sf.feeling.swt.win32.extension.widgets.CMenu;
import org.sf.feeling.swt.win32.extension.widgets.CMenuItem;
import org.sf.feeling.swt.win32.extension.widgets.CToolBar;
import org.sf.feeling.swt.win32.extension.widgets.CToolItem;
import org.sf.feeling.swt.win32.extension.widgets.MenuBar;
import org.sf.feeling.swt.win32.extension.widgets.MenuControl;
import org.sf.feeling.swt.win32.extension.widgets.PopupMenu;
import org.sf.feeling.swt.win32.extension.widgets.Separator;
import org.sf.feeling.swt.win32.extension.widgets.ShellWrapper;
import org.sf.feeling.swt.win32.extension.widgets.Shortcut;
import org.sf.feeling.swt.win32.extension.widgets.ThemeConstants;
import org.sf.feeling.swt.win32.extension.widgets.listener.MenuAdapter;
import org.sf.feeling.swt.win32.extension.widgets.theme.BlackGlossyThemeRender;
import org.sf.feeling.swt.win32.extension.widgets.theme.GlossyThemeRender;
import org.sf.feeling.swt.win32.extension.widgets.theme.Office2003ThemeRender;
import org.sf.feeling.swt.win32.extension.widgets.theme.Office2007ThemeRender;
import org.sf.feeling.swt.win32.extension.widgets.theme.VS2003ThemeRender;
import org.sf.feeling.swt.win32.extension.widgets.theme.VS2005ThemeRender;
import org.sf.feeling.swt.win32.internal.extension.util.ImageCache;
public class Example
{
private void initial( )
{
final Display display = new Display( );
shell = new Shell( display );
shell.setSize( 750, 490 );
shell.setImages( new Image[]{
ImageCache.getImage( "/eclipse.png" ),
ImageCache.getImage( "/eclipse32.png" ),
ImageCache.getImage( "/eclipse48.png" )
} );
GridLayout layout = new GridLayout( );
layout.marginWidth = layout.marginHeight = layout.verticalSpacing = 0;
shell.setLayout( layout );
shell.setText( "Eclipse SWT Win32 Extension Example" );
menubar = new MenuBar( shell, SWT.NONE );
menubar.getControl( )
.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
menuSeparator = new Separator( shell, SWT.SHADOW_IN | SWT.HORIZONTAL );
menuSeparator.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
setLayoutData( menuSeparator, true );
toolbar = new CToolBar( shell, CToolBar.SMALL_ICON );
toolbar.getControl( )
.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
toolSeparator = new Separator( shell, SWT.SHADOW_IN | SWT.HORIZONTAL );
toolSeparator.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
setLayoutData( toolSeparator, true );
Composite container = new Composite( shell, SWT.NONE );
container.setLayout( new FillLayout( ) );
BasePage page = new BasePage( );
page.buildUI( container );
container.setLayoutData( new GridData( GridData.FILL_BOTH ) );
ICategoryProvider provider = CategoryProviderFactory.getInstance( )
.getCategoryProvider( );
page.setCategoryProvider( provider );
page.refresh( );
container.forceFocus( );
shell.addDisposeListener( new DisposeListener( ) {
public void widgetDisposed( DisposeEvent arg0 )
{
DIRTY = true;
manager.dispose( );
if ( Hook.MOUSE.isInstalled( Example.this ) )
Hook.MOUSE.uninstall( Example.this );
if ( Hook.KEYBOARD.isInstalled( Example.this ) )
Hook.KEYBOARD.uninstall( Example.this );
if ( JournalRecordHook.isInstalled( ) )
JournalRecordHook.unInstallHook( );
if ( JournalPlaybackHook.isInstalled( ) )
JournalPlaybackHook.unInstallHook( );
if ( Windows.isWindowTransparent( shell.handle ) )
{
Windows.setWindowTransparent( shell.handle, false );
}
Windows.hideWindowBlend( shell.handle, 1000 );
}
} );
shell.layout( );
wrapper = new ShellWrapper( shell );
manager = new SystemMenuManager( shell );
SystemMenuItem item = new SystemMenuItem( manager, SWT.SEPARATOR );
final SystemMenuItem aboutItem = new SystemMenuItem( manager, SWT.NONE );
aboutItem.setText( "About SWT Win32 Extension" );
aboutItem.setImage( ImageCache.getImage( "/about.bmp" ) );
aboutItem.addListener( new Listener( ) {
public void handleEvent( Event event )
{
new AboutDialog( (Shell) event.widget );
}
} );
manager.addItem( item );
manager.addItem( aboutItem );
createSystemMenu( );
createPageMenu( page, provider );
createDemonstrationMenu( );
createToolBarSettingMenu( );
createHelpMenu( );
createExitToolItem( );
final PopupMenu popupMenu = new PopupMenu( menubar.getControl( ) );
final PopupMenu popupMenu1 = new PopupMenu( toolbar.getControl( ) );
CMenu menu = new CMenu( );
for ( int i = 0; i < menubar.getMenu( ).getItemCount( ); i++ )
menu.addItem( menubar.getMenu( ).getItem( i ) );
popupMenu.setMenu( menu );
popupMenu1.setMenu( menu );
menu.addMenuListener( new MenuAdapter( ) {
public void menuShown( Event e )
{
popupMenu.setTheme( menubar.getTheme( ) );
popupMenu.refresh( );
popupMenu1.setTheme( toolbar.getTheme( ) );
popupMenu1.refresh( );
}
} );
if ( Win32.getWin32Version( ) >= Win32.VERSION( 5, 0 ) )
{
wrapper.installTheme( ThemeConstants.STYLE_OFFICE2007 );
handleOffice2007Selection( );
}
else
{
wrapper.installTheme( ThemeConstants.STYLE_VISTA );
handleVistaSelection( );
office2007Style.setEnabled( false );
glossyStyle.setEnabled( false );
}
glossy.setEnabled( GraphicsUtil.checkGdip( ) );
wrapper.open( );
// shell.open();
while ( !shell.isDisposed( ) )
{
if ( !display.readAndDispatch( ) )
display.sleep( );
}
display.dispose( );
}
private void createExitToolItem( )
{
CToolItem exitTool = new CToolItem( SWT.NONE );
exitTool.setImage( ImageCache.getImage( "/exit.gif" ) );
exitTool.setToolTip( "Exit Win32 Extension Example" );
toolbar.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
(包含demo)org.sf.feeling.swt.win32.extension_1.1.0.zip (88个子文件)
org.sf.feeling.swt.win32.extension_1.1.0
Example
org.sf.feeling.swt.win32.extension.example_1.1.0.src.zip 4.35MB
org.sf.feeling.swt.win32.extension.example_1.1.0.src
about.html 5KB
src
cup.bmp 591KB
eclipse_lg.gif 12KB
eclipse48.png 5KB
eclipse.png 3KB
rightVolume.gif 1KB
bug.gif 348B
exit.gif 1KB
eclipse32.png 4KB
cpu.png 3KB
home.gif 582B
leftVolume.gif 1KB
folder.gif 216B
about.bmp 392B
memory.png 3KB
flash.swf 6KB
org
sf
feeling
swt
win32
extension
example
widget
FormWidgetFactory.java 11KB
ITabbedPropertyConstants.java 2KB
Tab.java 1KB
TabbedPropertyList.java 30KB
TabbedPropertyTitle.java 6KB
AboutDialog.java 9KB
Example.java 31KB
AboutItem.java 2KB
util
WidgetUtil.java 3KB
ImageUtil.java 4KB
page
ShellLinkPage.java 8KB
WebPage.java 1KB
ShellFolderPage.java 6KB
RegistryPage.java 5KB
FileSystemPage.java 9KB
IconPage.java 5KB
CategoryPage.java 1KB
OleControlPage.java 14KB
SimpleTabPage.java 1KB
HookPage.java 9KB
LowLevelHookPage.java 9KB
NativeControlPage.java 7KB
DesktopPage.java 13KB
TabPage.java 1KB
SystemPage.java 19KB
ShellExplorerPage.java 6KB
ProcessExplorerPage.java 4KB
ICategoryPage.java 1KB
SoundPage.java 17KB
WindowPage.java 14KB
BasePage.java 6KB
HelloWorld.java 4KB
provider
RegistryTableLabelProvider.java 2KB
ProcessExplorerLabelProvider.java 2KB
ProcessExplorerContentProvider.java 2KB
FileTableLabelProvider.java 8KB
RegistryTableContentProvider.java 1KB
RegistryTreeLabelProvider.java 2KB
CategoryProvider.java 1KB
FileTableContentProvider.java 5KB
FolderTreeLabelProvider.java 3KB
FolderTreeContentProvider.java 5KB
CategoryProviderFactory.java 5KB
RegistryTreeContentProvider.java 2KB
ICategoryProvider.java 886B
snippets
TestOSVersionInfo.java 789B
TestSystemVariables.java 2KB
TestEllipsePath.java 2KB
TestMouse.java 451B
TestCDDrive.java 1KB
TestLowLevelHook.java 3KB
TestKeyboard.java 403B
TestHook.java 3KB
TestLibraryVersionInfo.java 887B
TestSystemInfo.java 905B
HelloWorld.java 3KB
TestWindowsSession.java 760B
TestFileVersionInfo.java 2KB
SimpleExample.java 9KB
lib
org.eclipse.swt.win32.jar 2.32MB
org.eclipse.equinox.common.jar 100KB
org.sf.feeling.swt.win32.extension.jar 792KB
org.eclipse.core.commands.jar 105KB
org.eclipse.jface.jar 1.02MB
org.eclipse.ui.forms.jar 281KB
META-INF
MANIFEST.MF 278B
Feeling.url 121B
org.sf.feeling.swt.win32.extension.example_1.1.0.zip 4.44MB
Lib
org.sf.feeling.swt.win32.extension_1.1.0.jar 792KB
org.sf.feeling.swt.win32.extension_1.1.0.src.zip 833KB
org.sf.feeling.swt.win32.extension_1.1.0.doc.zip 1.44MB
共 88 条
- 1
资源评论
Mis_Blue
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Pytorch复现Point-Transformer,用于ShapeNet数据集点云分割
- 【医学影像分析】2D超声图像的分割检测(Ultrasound Nerve Segmentation - Kaggle数据集)
- 嘎嘎香的五款神仙谷歌插件
- .arch书源导入教程.mp4
- 贪心算法介绍及代码示例讲解
- CR13SP35MSI64 Crystal 水晶报表运行组件最后版本64位
- 图像分类数据集:玉米叶是否感染分类数据集(2分类,包含训练集、验证集)
- 小U商城.zip
- 高光谱图像计算机视觉分类图像预处理工具集,包含去除图片无关背景,数据增强,生成标签文件等功能
- (顶刊复现)基于配电网韧性提升的应急移动电源预配置和动态调度(下)-MPS动态调度
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功