Skip to content

loading TCL / Tk symbols dynamically #6442

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
May 24, 2016
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
WIP: Add excerpts from TCL / Tk header
Add parts of TCL / Tk headers needed to compile.

If this header is enough, and correct across platforms, then we should
be able to remove the complicated TCL / Tk search algorithms at build
time.
  • Loading branch information
matthew-brett committed May 20, 2016
commit 94bb4577e1ca15a567ca27601907c09a558f1a41
11 changes: 1 addition & 10 deletions src/_tkagg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,7 @@

extern "C"
{
#ifdef __APPLE__
# ifdef TK_FRAMEWORK
# include <Tcl/tcl.h>
# include <Tk/tk.h>
# else
# include <tk.h>
# endif
#else
# include <tk.h>
#endif
#include "_tkmini.h"
}

#if defined(_MSC_VER)
Expand Down
91 changes: 91 additions & 0 deletions src/_tkmini.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
/* Small excerpts from the Tcl / Tk 8.6 headers
*
* License terms copied from:
* http://www.tcl.tk/software/tcltk/license.html
* as of 20 May 2016.
*
* Copyright (c) 1987-1994 The Regents of the University of California.
* Copyright (c) 1993-1996 Lucent Technologies.
* Copyright (c) 1994-1998 Sun Microsystems, Inc.
* Copyright (c) 1998-2000 by Scriptics Corporation.
* Copyright (c) 2002 by Kevin B. Kenny. All rights reserved.
*
* This software is copyrighted by the Regents of the University
* of California, Sun Microsystems, Inc., Scriptics Corporation,
* and other parties. The following terms apply to all files
* associated with the software unless explicitly disclaimed in
* individual files.
*
* The authors hereby grant permission to use, copy, modify,
* distribute, and license this software and its documentation
* for any purpose, provided that existing copyright notices are
* retained in all copies and that this notice is included
* verbatim in any distributions. No written agreement, license,
* or royalty fee is required for any of the authorized uses.
* Modifications to this software may be copyrighted by their
* authors and need not follow the licensing terms described
* here, provided that the new terms are clearly indicated on
* the first page of each file where they apply.
*
* IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO
* ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
* CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS
* SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN
* IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON
* AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO
* OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
* ENHANCEMENTS, OR MODIFICATIONS.
*
* GOVERNMENT USE: If you are acquiring this software on behalf
* of the U.S. government, the Government shall have only
* "Restricted Rights" in the software and related documentation
* as defined in the Federal Acquisition Regulations (FARs) in
* Clause 52.227.19 (c) (2). If you are acquiring the software
* on behalf of the Department of Defense, the software shall be
* classified as "Commercial Computer Software" and the
* Government shall have only "Restricted Rights" as defined in
* Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the
* foregoing, the authors grant the U.S. Government and others
* acting in its behalf permission to use and distribute the
* software in accordance with the terms specified in this
* license
*/

/* Tcl header excerpts */
#define TCL_OK 0
#define TCL_ERROR 1

typedef struct Tcl_Interp
{
char *result;
void (*freeProc) (char *);
int errorLine;
} Tcl_Interp;

typedef struct Tcl_Command_ *Tcl_Command;
typedef void *ClientData;

typedef int (Tcl_CmdProc) (ClientData clientData, Tcl_Interp
*interp, int argc, const char *argv[]);
typedef void (Tcl_CmdDeleteProc) (ClientData clientData);

/* Tk header excerpts */
typedef struct Tk_Window_ *Tk_Window;

typedef void *Tk_PhotoHandle;

typedef struct Tk_PhotoImageBlock
{
unsigned char *pixelPtr;
int width;
int height;
int pitch;
int pixelSize;
int offset[4];
} Tk_PhotoImageBlock;