1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
/*
* ttkStubLib.c,v 1.4 2006/11/11 22:16:41 jenglish Exp
* SOURCE: tk/generic/tkStubLib.c, version 1.9 2004/03/17
*/
#include "tk.h"
#define USE_TTK_STUBS 1
#include "tkTheme.h"
const TtkStubs *ttkStubsPtr;
/*
*----------------------------------------------------------------------
*
* TtkInitializeStubs --
* Load the tile package, initialize stub table pointer.
* Do not call this function directly, use Ttk_InitStubs() macro instead.
*
* Results:
* The actual version of the package that satisfies the request, or
* NULL to indicate that an error occurred.
*
* Side effects:
* Sets the stub table pointer.
*
*/
const char *
TtkInitializeStubs(
Tcl_Interp *interp, const char *version, int epoch, int revision)
{
int exact = 0;
const char *packageName = "tile";
const char *errMsg = NULL;
ClientData pkgClientData = NULL;
const char *actualVersion= Tcl_PkgRequireEx(
interp, packageName, version, exact, &pkgClientData);
TtkStubs *stubsPtr = pkgClientData;
if (!actualVersion) {
return NULL;
}
if (!stubsPtr) {
errMsg = "missing stub table pointer";
goto error;
}
if (stubsPtr->epoch != epoch) {
errMsg = "epoch number mismatch";
goto error;
}
if (stubsPtr->revision < revision) {
errMsg = "require later revision";
goto error;
}
ttkStubsPtr = stubsPtr;
return actualVersion;
error:
Tcl_ResetResult(interp);
Tcl_AppendResult(interp,
"Error loading ", packageName, " package",
" (requested version '", version,
"', loaded version '", actualVersion, "'): ",
errMsg,
NULL);
return NULL;
}
|