diff options
Diffstat (limited to 'src/Fl_cutpaste_mac.cxx')
| -rw-r--r-- | src/Fl_cutpaste_mac.cxx | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/src/Fl_cutpaste_mac.cxx b/src/Fl_cutpaste_mac.cxx deleted file mode 100644 index 7633ac6f3..000000000 --- a/src/Fl_cutpaste_mac.cxx +++ /dev/null @@ -1,109 +0,0 @@ -// -// "$Id: Fl_cutpaste_mac.cxx,v 1.1.2.4 2002/02/26 00:34:55 matthiaswm Exp $" -// -// MacOS cut/paste code for the Fast Light Tool Kit (FLTK). -// -// Copyright 1998-2002 by Bill Spitzak and others. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA. -// -// Please report all bugs and problems to "fltk-bugs@fltk.org". -// - -// Implementation of cut and paste for MacOS. - -#include <FL/Fl.H> -#include <FL/mac.H> -#include <FL/Fl_Window.H> -#include <string.h> - -char *fl_selection_buffer = 0L; -int fl_selection_length = 0; -static int selection_buffer_length = 0; - -static ScrapRef myScrap = 0; - -extern Fl_Widget *fl_selection_requestor; // widget doing request_paste() - -/** - * call this to retrieve the current slection - * receiver: widget receiving the selection - * Fl::e_text: pointer to selection - * Fl::e_length: size of election - */ -void Fl::paste( Fl_Widget &receiver ) -{ - ScrapRef scrap = 0; - OSStatus ret = GetCurrentScrap( &scrap ); - if ( ( scrap != myScrap ) && ( ret == noErr ) ) - { - Size len; - ret = GetScrapFlavorSize( scrap, kScrapFlavorTypeText, &len ); - if ( ret != noErr ) return; - if ( len > selection_buffer_length ) - { - selection_buffer_length = len + 32; - delete[] fl_selection_buffer; - fl_selection_buffer = new char[len]; - selection_buffer_length = len; - } - GetScrapFlavorData( scrap, kScrapFlavorTypeText, &len, fl_selection_buffer ); - fl_selection_length = len; - } - for ( char *s = fl_selection_buffer+fl_selection_length; s >= fl_selection_buffer; s-- ) // this will fail on PC line endings (CR+LF) - if ( *s == 0x0d ) *s = 0x0a; - Fl::e_text = fl_selection_buffer; - Fl::e_length = fl_selection_length; - receiver.handle( FL_PASTE ); - return; -} - - -/** - * create a selection - * owner: widget that created the selection - * stuff: pointer to selected data - * size of selected data - */ -void Fl::selection( Fl_Widget &owner, const char *stuff, int len ) { - if ( !stuff || len<0 ) - return; - if ( len+1 > selection_buffer_length ) { - delete[] fl_selection_buffer; - fl_selection_buffer = new char[len+100]; - selection_buffer_length = len+100; - } - memcpy( fl_selection_buffer, stuff, len ); - for ( char *s = fl_selection_buffer+len; s >= fl_selection_buffer; s-- ) // this will fail on PC line endings (CR+LF) - if ( *s == 0x0a ) *s = 0x0d; - fl_selection_buffer[len] = 0; - fl_selection_length = len; - selection_owner( &owner ); - - ClearCurrentScrap(); - OSStatus ret = GetCurrentScrap( &myScrap ); - if ( ret != noErr ) - { - myScrap = 0; - return; - } - PutScrapFlavor( myScrap, kScrapFlavorTypeText, 0, fl_selection_length, fl_selection_buffer ); -} - - -// -// End of "$Id: Fl_cutpaste_mac.cxx,v 1.1.2.4 2002/02/26 00:34:55 matthiaswm Exp $". -// |
