Institute of Informatics & Telecommunications – NCSR “Demokritos” TkDND: a cross-platform drag’n’drop package Georgios Petasis Software and Knowledge Engineering.

Slides:



Advertisements
Similar presentations
Integration between HTML 5 Drag & Drop and SAP ABAP HTTP ICF Services Alessandro Spadoni & Patrizia Rossi October 8th,
Advertisements

Computer Net Lab/Praktikum Datenverarbeitung 2 1 Overview Sockets Sockets in C Sockets in Delphi.
Win8 on Intel Programming Course Desktop : Sensors Cédric Andreolli Intel Software
QtMG CCP4 Developers’ Meeting, Abingdon, 17th-19th March, 2008.
Bullseye Bullseye was rolled out to our user base on Friday, January 30. I wanted to take this opportunity to give everyone an update on a.
1 SMS at the University of Hong Kong Libraries William Ko, HKU Libraries Dr Frank Tong, ETI, HKU.
SOFTWARE PRESENTATION ODMS (OPEN SOURCE DOCUMENT MANAGEMENT SYSTEM)
Chapter 4: Threads. Overview Multithreading Models Threading Issues Pthreads Windows XP Threads.
1 of 4 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
HEX: Eiffel Style Created By: Rory Murphy Daniel Tyszka.
Operating Systems Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2006/ Threads.
Module 1 Introduction to Network Operating Systems
Object Linking and Embedding A tool which allows different software application packages to share data.
Application Software: Essentials for knowledge workers
Jennifer Paoletti. Office Live Workspace Basics provides a user with its own domain name, and the ability to create their own website. It also provides.
A project management tool in Polytechnic University of Tirana (Bachelor thesis) Iva Tarelli Prof. Assoc. Elinda Kajo 14 th Workshop “SEE&RE” Sinaia, Romania,
INTRODUCTION TO HTML5 Drag and Drop in HTML5. Browsers Support  Currently, most of the major HTML5 desktop web browsers support the new HTML5 drag-and-drop.
Win8 on Intel Programming Course Modern UI : Features Cédric Andreolli Intel Software.
Chapter 11-Multimedia Authoring Tools. Overview Introduction to multimedia authoring tools. Types of authoring tools. Cross-platform authoring notes.
Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Design Extensions to Google+ CS6204 Privacy and Security.
Institute of Informatics & Telecommunications – NCSR “Demokritos” Ellogon and the challenge of threads Georgios Petasis Software and Knowledge Engineering.
Institute of Informatics & Telecommunications – NCSR “Demokritos” TkRibbon: Windows Ribbons for Tk Georgios Petasis Software and Knowledge Engineering.
Computer Programming Software. Two Basic Classifications System / Application Software.
University of Sunderland CDM105 Session 5 Web Authoring Tools The past and present A history of web authoring tools and an overview of Macromedia Dreamweaver.
Threads, Thread management & Resource Management.
Python CGI programming
Cloud computing for internet emulator. Professor Muthucumaru Maheswaran Team Members Mia Hochar Simon Foucher David El Achkar David El Achkar Marc Atie.
Redundancy. 2. Redundancy 2 the need for redundancy EPICS is a great software, but lacks redundancy support which is essential for some highly critical.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.
Chapter 4 System Software. Software Programs that tell a computer what to do and how to do it. Sets of instructions telling computers to perform actions.
An Introduction to Linux Name: Haixin Wang ID :
Mosflm & iMosflm (1) Some numbers... (2) Mosflm (3) iMosflm.
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
Institute of Informatics & Telecommunications – NCSR “Demokritos” TileQt and TileGtk: current status Georgios Petasis Software and Knowledge Engineering.
INDUSTRIAL PROJECT (234313) ULTRASOUND SCANNER EMBEDDED ONLINE PROFILER Students: Liat Peterfreund, Hagay Myr Supervisor: Mr. Tomer Gal (GE Healthcare)
ROOT Team Meeting October 1 st 2010 GUI thinking and testing ideas OpenGL GUI Root Team meeting 01/10/2010.
1 UNIT 15 Webpage Creator Lecturer: fadwa tlaelan.
Oracle Data Integrator Procedures, Advanced Workflows.
Introduction to Making Multimedia
Computer Networking From LANs to WANs: Hardware, Software, and Security Chapter 13 FTP and Telnet.
Model-Driven Engineering of Behaviors in User Interfaces Efrem Mbaki & Jean Vanderdonckt Université catholique de Louvain (UCL) Louvain School of Management.
A radiologist analyzes an X-ray image, and writes his observations on papers  Image Tagging improves the quality, consistency.  Usefulness of the data.
Jan 2015 iServ OfficeServ Operator Essential for business operators, receptionists, and people who manage high volume on calls, the iServ OfficeServ Operator.
SKYPIAX, how to add Skype capabilities to FreeSWITCH (and Asterisk) CHICAGO, USA, September 2009.
Porting a large scale enterprise application from Tcl/Tk 8.4 to 8.5 Prashant Thakre, Tushar Gupta {prashant_thakre, Gaurav Bansal.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
Institute of Informatics & Telecommunications – NCSR “Demokritos” TkGecko: Another Attempt for an HTML Renderer for Tk Georgios Petasis Software and Knowledge.
Copyright (c) 2006 IBM Corporation; made available under the EPL v1.0 Update Policy ~ Where we are in 3.2.
Agency Web Site Navigation Structure. Building the agency web site Agency Web Site Navigation Structure, Slide 2Copyright © 2004, Jim Schwab, University.
GTK+
Microsoft Office 2008 for Mac – Illustrated Unit D: Getting Started with Safari.
+ GIO-land Verification/Enhancement Data Exchange Platform.
How to Convert AVI Videos to Play on Amazon Kindle Fire? Question: Can Kindle Fire play AVI files? I have several movies with.avi extension, and I really.
Lessons Copy and Paste Text Drag and Drop Text 2-Saving Documents 3- Printing 4-Inserting Tables Modifying Page Layout Format Page Margins Insert a Blank.
Operating System Basics. Outline The User Interface Running Programs Managing Files Managing Hardware Utility Software.
1 Proposal of Next Generation Input Method framework IM-BUS project James Su.
C++11 and LibreOffice Michael Stahl
Introduction to threads
DDC 1013 – Micro Computer Application
Lecture 1-Part 2: Operating-System Structures
YourDataStories: Transparency and Corruption Fighting through Data Interlinking and Visual Exploration Georgios Petasis1, Anna Triantafillou2, Eric Karstens3.
CHAPTER 8 Multimedia Authoring Tools
Scaling of Eclipse on High Density Displays
PRESENTATION 1.0 BY – SAFEEBOOK Web browsers.
Qt Programming.
Lecture 1-Part 2: Operating-System Structures
Introducing Windows Operating Systems
Introduction Time is something we waist as a society
Presentation transcript:

Institute of Informatics & Telecommunications – NCSR “Demokritos” TkDND: a cross-platform drag’n’drop package Georgios Petasis Software and Knowledge Engineering Laboratory, Institute of Informatics and Telecommunications, National Centre for Scientific Research “Demokritos”, Athens, Greece

Overview  Drag and Drop (DnD)  DnD and Tk –Intra & inter application DnD  TkDND –History and current status –Usage –Supported platforms  Conclusions and future work 2 14 Oct 2010TkDND: a cross-platform drag’n’drop package

Drag and Drop (1)  The action of clicking on a virtual object, and: –either dragging it to a different location, –or onto a different virtual object  Nowadays, an important element of modern UI development –Thus, several extensions exist  Drag and Drop in Tk: [ –Lists more than 5 extensions 14 Oct 2010TkDND: a cross-platform drag’n’drop package 3

Drag and Drop (2)  Two main categories: –Approaches that target DnD within the same application (intra-application) –Approaches that target DnD among different applications (inter-application)  Intra-application: –Not difficult to implement –A communication mechanism among virtual objects needs to be devised Feasible even in Tcl –Several intra-application approaches are available “megawidgets” (i.e. Bwidget) 14 Oct 2010TkDND: a cross-platform drag’n’drop package 4

Inter-application DnD  A more challenging task –Requires an inter-application communication scheme  Initial approaches targeted other Tk applications –i.e. BLT, with a communication scheme based on Tk’s “sent”  More recent approaches tried to exploit standardised DnD communication protocols –i.e. Olednd 14 Oct 2010TkDND: a cross-platform drag’n’drop package 5

Olednd  Olednd –Developed by Gordon Chaffee  Amongst the first DnD approaches for Tk that can be characterised as complete: –Inter-application DnD under Microsoft Windows By exploiting OLE DnD, the platform’s native DnD protocol  TkDND was inspired by Olednd –Enhance functionality under Windows (i.e. files) –Support more operating systems Gnu/Linux Mac OS X. 14 Oct 2010TkDND: a cross-platform drag’n’drop package 6

TkDND 1.x series (1)  Development started around 2000 –With a new implementation for Windows Several data types: ASCII-UNICODE text transfers, file names, etc.  Supporting Linux was attempted –Two protocols at that time: Motif DND (Motif/Lesstiff, GTK/GNOME) XDND (Qt/KDE)  TkDND tried to compromise the two protocols: –Support for both dragging/dropping actions for (XDND) –Support for dropping actions (Motif) 14 Oct 2010TkDND: a cross-platform drag’n’drop package 7

TkDND 1.x series (2)  The result was not satisfactory –Stability issues Inadequate knowledge of Xlib programming –Frequent revisions of the XDND protocol XDND suport was a moving target –Incompatible implementations of the protocols Motif applications worked ok GTK/GNOME applications exhibit random behaviour XDND support was changing with each Qt release  TkDND was too ambitious –Too many types to be supported i.e. plain text, Unicode text, files, links, images 14 Oct 2010TkDND: a cross-platform drag’n’drop package 8

TkDND 2.x series  TkDND 1.x was abandoned in 2006 –In favor for TkDND 2.x  TkDND 2.x –Yet another DnD API TkDND 1.x API still supported though –A new implementation for all supported operating systems –Implemented in Tcl (as much as possible) A support library in Tcl –Support for cross-platform types DND_Text DND_Files 14 Oct 2010TkDND: a cross-platform drag’n’drop package 9

Using TkDND  Two categories of operations: –Accepting a drop operation (“Drop Targets”) –Initiating a drag operation (“Drag Sources”) 14 Oct 2010TkDND: a cross-platform drag’n’drop package 10

Drop targets  Drop targets –type-list: DND_Text, DND_Files, etc.  DnD events delivered as Tk virtual events – >: returns action – > – >: returns action Actions: copy, move, link, ask, private, and refuse_drop 14 Oct 2010TkDND: a cross-platform drag’n’drop package 11 tkdnd::drop_target register window ?type-list?

Drag sources  Drop targets –type-list: DND_Text, DND_Files, etc. –mouse-button: 1 (default), 2,...  DnD events delivered as Tk virtual events – >: returns action-list, type-list, data Actions: copy, move, link, ask, private – > 14 Oct 2010TkDND: a cross-platform drag’n’drop package 12 tkdnd::drag_source register window ?type-list? ?mouse-button? bind.drag_source > \ {list copy DND_Text {Hellow world!}}

Supported platforms: Windows  Fairly complete support –DND_Text (CF_UNICODETEXT - CF_TEXT) Both ANSI & Unicode supported –DND_Files (CF_HDROP) –Mouse modifiers supported  Uses OLE DnD –The native DnD protocol of the platform –Implements the needed data objects IDropTarget and IDropSource –Native events converted to TkDND events DragEnter, DragOver, DragLeave, Drop, QueryContinueDrag, GiveFeedback 14 Oct 2010TkDND: a cross-platform drag’n’drop package 13

Supported platforms: Mac OS X  Fairly complete support –DND_Text (NSStringPboardType) Both ANSI & Unicode supported –DND_Files (NSFilenamesPboardType) –Mouse modifiers not supported  Uses Cocoa DnD protocol –The native DnD protocol of the platform –Great resemblance to XDND A convenient API is available –Native events converted to TkDND events draggingEntered, draggingUpdated, draggingExited, prepareForDragOperation, performDragOperation 14 Oct 2010TkDND: a cross-platform drag’n’drop package 14

Unsupported platforms: Linux  Currently, TkDND does not work under Linux  Linux lacks a generic implementation of the XDND protocol –Instead, each toolkit (i.e. Qt, GTK+) contain their private implementation –Compatibility issues among the toolkits  Support for accepting drops exists –And seems working with Qt/KDE applications, with the exception of retrieving the dragged data –XDND requires to retrieve data from the selection with a specific timestamp Relates to TIP Oct 2010TkDND: a cross-platform drag’n’drop package 15

Conclusions – Future work  TkDND offers inter-application DnD for several platforms –Windows, Mac OS X, and hopefully Linux –The dominant DnD protocol is used for each platform –Cross-platform DnD types are provided  Future work will concentrate on: –Improving Linux support for dropping actions –Implementing Linux support for dragging actions –Fixing bugs 13 Oct 2010TkDND: a cross-platform drag’n’drop package 16

Aknowledgments Several contributors to TkDND:  Gordon Chaffee  Laurent Riesterer  Kevin Walzer  Daniel A. Steffen 14 Oct 2010TkDND: a cross-platform drag’n’drop package 17

Thank you!